比较 GridView 和 DataGrid Web 服务器控件

本文对比了ASP.NET中的GridView和DataGrid控件的功能与用法。GridView作为DataGrid的升级版,提供了更丰富的设计时功能、改进的数据源绑定、自动处理排序及分页等功能。此外,还介绍了两者在事件模型、分页支持等方面的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 命名空间中的其他一些类)分配给ataGrid 控件或 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 服务器控件事件。

转载于:https://www.cnblogs.com/luckeryin/archive/2008/07/29/1255949.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值