Gridview 控件属性及应用.docx
《Gridview 控件属性及应用.docx》由会员分享,可在线阅读,更多相关《Gridview 控件属性及应用.docx(15页珍藏版)》请在冰豆网上搜索。
Gridview控件属性及应用
GridView控件属性及应用
GridView是ASP.NET1.x的DataGrid控件的后继者。
它提供了相同的基本功能集,同时增加了大量扩展和改进。
如前所述,DataGrid(ASP.NET2.0仍然完全支持)是一个功能非常强大的通用控件。
然而,它有一个重大缺陷:
它要求我们编写大量定制代码,甚至处理比较简单而常见的操作,诸如分页、排序、编辑或删除数据等也不例外。
GridView控件旨在解决此限制,并以尽可能少的数据实现双向数据绑定。
该控件与新的数据源控件系列紧密结合,而且只要底层的数据源对象支持,它还可以直接处理数据源更新。
这种实质上无代码的双向数据绑定是新的GridView控件最著名的特征,但是该控件还增强了很多其他功能。
该控件之所以比DataGrid控件有所改进,是因为它能够定义多个主键字段、新的列类型以及样式和模板选项。
GridView还有一个扩展的事件模型,允许我们处理或撤销事件。
GridView控件为数据源的内容提供了一个表格式的类网格视图。
每一列表示一个数据源字段,而每一行表示一个记录。
1.GridView控件的属性
GridView支持大量属性,这些属性属于如下几大类:
行为、可视化设置、样式、状态和模板。
行为属性
描述
AllowPaging
指示该控件是否支持分页。
AllowSorting
指示该控件是否支持排序。
AutoGenerateColumns
指示是否自动地为数据源中的每个字段创建列。
默认为true。
AutoGenerateDeleteButton
指示该控件是否包含一个按钮列以允许用户删除映射到被单击行的记录。
AutoGenerateEditButton
指示该控件是否包含一个按钮列以允许用户编辑映射到被单击行的记录。
AutoGenerateSelectButton
指示该控件是否包含一个按钮列以允许用户选择映射到被单击行的记录。
DataMember
指示一个多成员数据源中的特定表绑定到该网格。
该属性与DataSource结合使用。
如果DataSource是有一个DataSet对象,则该属性包含要绑定的特定表的名称。
DataSource
获得或设置包含用来填充该控件的值的数据源对象。
DataSourceID
指示所绑定的数据源控件。
EnableSortingAndPagingCallbacks
指示是否使用脚本回调函数完成排序和分页。
默认情况下禁用。
RowHeaderColumn
用作列标题的列名。
该属性旨在改善可访问性。
SortDirection
获得列的当前排序方向。
SortExpression
获得当前排序表达式。
UseAccessibleHeader
规定是否为列标题生成
标签(而不是 | 标签)。 SortDirection和SortExpression属性规定当前决定行的排列顺序的列上的排序方向和排序表达式。 这两个属性都是在用户单击列的标题时由该控件的内置排序机制设置的。 整个排序引擎通过AllowSorting属性启用和禁用。 EnableSortingAndPagingCallbacks属性打开和关闭该控件的使用脚本回调进行分页和排序,而不用往返于服务器并改变整个页面的功能。 GridView控件内显示的每一行对应于一种特殊的网格项。 预定义的项目类型几乎等于DataGrid的项目类型,包括标题、行和交替行、页脚和分页器等项目。 这些项目是静态的,因为它们在控件的生命期内在应用程序中保持不变。 其他类型的项目在短暂的时间(即,完成某种操作所需的时间)内是活动的。 动态项目是编辑行、所选的行和EmptyData项。 当网格绑定到一个空的数据源时,EmptyData标识该网格的主体。 样式属性 描述 AlternatingRowStyle 定义表中每隔一行的样式属性。 EditRowStyle 定义正在编辑的行的样式属性。 FooterStyle 定义网格的页脚的样式属性。 HeaderStyle 定义网格的标题的样式属性。 EmptyDataRowStyle 定义空行的样式属性,这是在GridView绑定到空数据源时生成。 PagerStyle 定义网格的分页器的样式属性。 RowStyle 定义表中的行的样式属性。 SelectedRowStyle 定义当前所选行的样式属性。 外观属性 描述 BackImageUrl 指示要在控件背景中显示的图像的URL。 Caption 在该控件的标题中显示的文本。 CaptionAlign 标题文本的对齐方式。 CellPadding 指示一个单元的内容与边界之间的间隔(以像素为单位)。 CellSpacing 指示单元之间的间隔(以像素为单位)。 GridLines 指示该控件的网格线样式。 HorizontalAlign 指示该页面上的控件水平对齐。 EmptyDataText 指示当该控件绑定到一个空的数据源时生成的文本。 PagerSettings 引用一个允许我们设置分页器按钮的属性的对象。 ShowFooter 指示是否显示页脚行。 ShowHeader 指示是否显示标题行。 PagerSettings对象把所有可以对分页器设置的可视化属性组织在一起。 其中有很多属性在DataGrid程序员看来应该是熟悉的。 PagerSettings类还添加了一些新属性以满足新的预定义的按钮(第1页和最后一页),并在链接中使用图像代替文本。 模板属性 描述 EmptyDataTemplate 指示该控件绑定到一个空的数据源时要生成的模板内容。 如果该属性和EmptyDataText属性都设置了,则该属性优先采用。 如果两个属性都没有设置,则把该网格控件绑定到一个空的数据源时不生成该网格。 PagerTemplate 指示要为分页器生成的模板内容。 该属性覆盖我们可能通过PagerSettings属性作出的任何设置。 状态属性 描述 BottomPagerRow 返回表格该网格控件的底部分页器的GridViewRow对象。 Columns 获得一个表示该网格中的列的对象的集合。 如果这些列是自动生成的,则该集合总是空的。 DataKeyNames 获得一个包含当前显示项的主键字段的名称的数组。 DataKeys 获得一个表示在DataKeyNames中为当前显示的记录设置的主键字段的值。 EditIndex 获得和设置基于0的索引,标识当前以编辑模式生成的行。 FooterRow 返回一个表示页脚的GridViewRow对象。 HeaderRow 返回一个表示标题的GridViewRow对象。 PageCount 获得显示数据源的记录所需的页面数。 PageIndex 获得或设置基于0的索引,标识当前显示的数据页。 PageSize 指示在一个页面上要显示的记录数。 Rows 获得一个表示该控件中当前显示的数据行的GridViewRow对象集合。 SelectedDataKey 返回当前选中的记录的DataKey对象。 SelectedIndex 获得和设置标识当前选中行的基于0的索引。 SelectedRow 返回一个表示当前选中行的GridViewRow对象。 SelectedValue 返回DataKey对象中存储的键的显式值。 类似于SelectedDataKey。 TopPagerRow 返回一个表示网格的顶部分页器的GridViewRow对象。 GridView旨在利用新的数据源对象模型,并在通过DataSourceID属性绑定到一个数据源控件时效果最佳。 GridView还支持经典的DataSource属性,但是如果那样绑定数据,则其中一些特征(诸如内置的更新或分页)变得不可用。 2.GridView控件的事件 GridView控件没有不同于DataBind的方法。 然而,如前所述,在很多情况下我们不需要调用GridView控件上的方法。 当我们把GridView绑定到一个数据源控件时,数据绑定过程隐式地启动。 在ASP.NET2.0中,很多控件,以及Page类本身,有很多对doing/done类型的事件。 控件生命期内的关键操作通过一对事件进行封装: 一个事件在该操作发生之前激发,一个事件在该操作完成后立即激发。 GridView类也不例外。 表10.11列出了GridView控件激发的事件。 事件 描述 PageIndexChanging, PageIndexChanged 这两个事件都是在其中一个分页器按钮被单击时发生。 它们分别在网格控件处理分页操作之前和之后激发。 RowCancelingEdit 在一个处于编辑模式的行的Cancel按钮被单击,但是在该行退出编辑模式之前发生。 RowCommand 单击一个按钮时发生。 RowCreated 创建一行时发生。 RowDataBound 一个数据行绑定到数据时发生。 RowDeleting,RowDeleted 这两个事件都是在一行的Delete按钮被单击时发生。 它们分别在该网格控件删除该行之前和之后激发。 RowEditing 当一行的Edit按钮被单击时,但是在该控件进入编辑模式之前发生。 RowUpdating, RowUpdated 这两个事件都是在一行的Update按钮被单击时发生。 它们分别在该网格控件更新该行之前和之后激发。 SelectedIndexChanging, SelectedIndexChanged 这两个事件都是在一行的Select按钮被单击时发生。 它们分别在该网格控件处理选择操作之前和之后激发。 Sorting,Sorted 这两个事件都是在对一个列进行排序的超链接被单击时发生。 它们分别在网格控件处理排序操作之前和之后激发。 RowCreated和RowDataBound事件与DataGrid的ItemCreated和ItemDataBound事件相同,只是换了个新名称。 它们的行为完全与它们在ASP.NET1.x中的一样。 对于RowCommand事件也一样,它与DataGrid的ItemCommand事件一样。 可以使用宣布某种操作的事件,极大地增强了我们的编程能力。 通过连接RowUpdating事件,可以交叉检查正在更新什么并对新值进行验证。 同样,我们可能需要处理RowUpdating事件,用HTML对客户端提供的值进行编码,然后把它们持久地保存在底层数据存储中。 这一简单技巧有助于防御脚本侵入。 3.GridView控件支持的列类型 类型 描述 BoundField 默认的列类型。 作为纯文本显示一个字段的值。 ButtonField 作为命令按钮显示一个字段的值。 我们可以选择链接按钮或按钮开关样式。 CheckBoxField 作为一个复选框显示一个字段的值。 它通常用来生成布尔值。 CommandField ButtonField的增强版本,表示一个特殊的命令,诸如Select、Delete、Insert或Update。 该属性对GridView控件几乎每什么用;该字段是为DetailsView控件定制的。 (GridView和DetailsView共享从DataControlField派生的类集。 ) HyperLinkField 作为超链接显示一个字段的值。 单击该超链接时,浏览器到航道指定的URL。 ImageField 作为一个HTML标签的Src属性显示一个字段的值。 绑定字段的内容应该是物理图象的URL。 TemplateField 为列中的每一项显示用户定义的内容。 当我们需要创建一个
展开阅读全文
相关搜索
|