比较 GridView 和 DataGrid Web 服务器控件

来源:本站整理  作者:NC_Editor
摘要:GridView控件是DataGrid控件的后继控件。与DataGrid控件相似,GridView控件旨在在HTML表中显示数据。当绑定到数据源时,DataGrid和GridView控件分别将DataSource中的一行显示为输出表中的一行。 DataGri…

GridView控件是 DataGrid 控件的后继控件。与 DataGrid 控件相似,GridView 控件旨在在 HTML 表中显示数据。当绑定到数据源时,DataGrid 和 GridView 控件分别将 DataSource 中的一行显示为输出表中的一行。

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

  • 更丰富的设计时功能。
  • 改进的数据源绑定功能。
  • 排序、分页、更新和删除的自动处理。
  • 其他列类型和设计时列操作。
  • 具有 PagerTemplate 属性的自定义页导航用户界面 (UI)。

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

  • 不同的自定义分页支持。
  • 不同的事件模型。

改进的设计时功能

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

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

改进的数据源绑定功能

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

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

其他列类型

GridView 控件支持以下列类型:BoundField、HyperLinkField、ButtonField、CommandField、ImageField 和 CheckBoxField。内置和自定义分页支持

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

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

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

扩展的事件模型

DataGrid 和 GridView 控件具有不同的事件模型。

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

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

有关 GridView 的更多信息,请参见 GridView Web 服务器控件事件。

【相关文章】好搜一下
关于Visual Studio 2010中生成测试数据的简便方法

关于Visual Studio 2010中生

【IT专家网独家】在VisualStudio2010中主要是通过使用Databa…