GridView 与 DataGrid 服务器控件

来源:互联网 发布:阿里云幕布图片 编辑:程序博客网 时间:2024/05/18 03:05
GridView 控件是 DataGrid 控件的后继控件。与 DataGrid 控件相似,GridView 控件旨在在 HTML 表中显示数据。当绑定到数据源时,DataGridGridView 控件分别将 DataSource 中的一行显示为输出表中的一行。

DataGridGridView 控件都是从 WebControl 类派生的。虽然 GridView 控件与 DataGrid 控件具有类似的对象模型,但与 DataGrid 控件相比,前者还具有许多新功能和优势,包括:

  • 更丰富的设计时功能。

  • 改进的数据源绑定功能。

  • 排序、分页、更新和删除的自动处理。

  • 其他列类型和设计时列操作。

  • 具有 PagerTemplate 属性的自定义页导航用户界面 (UI)。

GridView 控件和 DataGrid 控件之间的差异包括:

  • 不同的自定义分页支持。

  • 不同的事件模型。

改进的设计时功能

使用 DataGrid 控件时,数据的排序、分页和就地编辑需要附加的编码。GridView 控件则使您无需编写任何代码即可添加排序、分页和编辑功能。实际上,可以通过在控件上设置属性来自动完成这些任务(以及诸如到数据源的数据绑定等其他常见任务)。

在设计器(如 Microsoft Visual Studio)中工作时,可以利用内置在 GridView 控件中的设计器功能。GridView 控件提供了对智能标记面板的支持,这种面板为执行常见任务(如设置属性和启动模板编辑)提供了方便的界面。

改进的数据源绑定功能

通常,将 DataSet 控件、DbDataReader 控件或集合(如 ArrayArrayListSystem.Collections 命名空间中的其他一些类)分配给 DataGrid 控件或 GridView 控件的 DataSource 属性。DataGrid 控件和 GridView 控件可以绑定任何实现 IEnumerableIListSource 接口的对象。

DataGrid 控件可以以声明方式绑定 DataSourceControl 控件,但这只适用于数据选择。必须手动编码才能实现排序、分页、更新和删除。GridView 控件支持 DataSourceID 属性,该属性接受任何实现了 IDataSource 接口因此可以利用数据源控件的排序、分页、更新和删除功能的对象,例如,SqlDataSource 控件。

其他列类型

GridView 控件支持以下列类型:BoundFieldHyperLinkFieldButtonFieldCommandFieldImageFieldCheckBoxField

内置和自定义分页支持

DataGrid 控件需要其他编码用于分页。GridView 控件通过设置 PagerSettings 属性自动支持分页。PagerSettings 属性支持四种模式:Numeric(默认值)、NextPreviousNumericFirstLastNextPreviousFirstLastNumeric 模式显示带编号的页链接而不是“下一个/上一个”链接,并且 NumericFirstLast 选项添加第一个和最后一个页链接。GridView 控件的 PagerStyle 属性可以用于设置页导航的样式和位置。

另外,可以使用 PagerTemplate 自定义 GridView 控件的页导航按钮。

GridView 中的自定义分页支持由绑定数据源控件提供,而 AllowCustomPaging 机制则是由 DataGrid 控件提供的。

扩展的事件模型

DataGridGridView 控件具有不同的事件模型。

DataGrid 控件引发操作的单个事件,而 GridView 控件能够引发操作前和操作后的事件。GridView 控件支持在对字段排序时发生的 Sorting 事件。注意,此排序事件发生在 GridView 控件自动处理排序操作之前,这样您将有机会检查或更改 SortExpression 属性,或通过在传递的事件参数上将 Cancel 属性设置为 true 来取消此操作。

GridView 控件支持在 GridView 控件完成排序操作之后发生的 Sorted 事件,这样您将有机会更改排序操作的结果或设置其格式。相反,DataGrid 控件支持在对列进行排序时发生的 SortCommand 事件。同样,GridView 控件支持在 GridView 控件自动处理更新操作之前和之后发生的 RowUpdatingRowUpdated 事件。相比之下,DataGrid 控件支持在对网格中的项单击“更新”按钮时发生的 UpdateCommand 事件。

 
原创粉丝点击