ASP.NET 2.0 中的 DataSource 系列控件

本文探讨了ASP.NET2.0中DataSource控件的功能与优势,包括自动处理查询更新、分页及排序等特性。对比手动DataBind方式,揭示了DataSource控件如何简化GridView分页实现。

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

在ASP.NET 2.0中,引入了DataSource系列控件,扔一个到页面上并且选择性的配置好SELECT/UPDATE/INSERT/DELETE对应的操作,它就能够和数据空间无缝合作自动处理查询与更新,并且提供分页、排序等支持。

有一些ASP.NET 1.x的程序员,并不喜欢使用DataSource控件,觉得还是按找1.x的写法在Page_Load里面设定数据控件的DataSource属性然后执行DataBind好,但实际上2.0的数据控件为DataSource控件做了不少优化所以应该尽量使用DataSource控件。我在使用2.0的过程中DataSource控件和手动DataBind都尝试过了,并且借助Reflector分析.NET自带控件的代码,发现了其中的一些差异。

首先要说的是,数据控件对于是否使用DataSource控件是非常敏感的,很多操作数据控件都会检查自己的DataSourceID属性是否为空,如果不为空则很多事情都能够配合DataSource控件自动化完成,如果为空则通过事件通知用户需要手动完成一些操作。

例如GridView的分页,在使用DataSource控件的时候是能够自动运作的,在翻页时GridView会自动将PageIndex设置为GridViewPageEventArgs.NewPageIndex,同时设置RequiresDataBinding为true,接下来的事情就如魔术般自动发生——GridView会重新执行DataBind,这时候它会懂得自己去找DataSource控件获取DataSourceView,然后从DataSourceView中获取本页数据并进入创建子控件环节。如果你提供给DataSource控件的SELECT方法本身就支持通过传递参数选择仅获取某一页的数据,那么DataSource控件就懂得仅获取GridView所需页的数据以及总页数。

但如果没有DataSource控件,只是指定DataSource并且DataBind,那就会提示GridView未设置OnPageIndexChanging事件,其实意思就是你必须自己手动处理这个事件。对于DataSource从来都是整个GridView显示的数据这种情况来说,自己添加一个OnPageIndexChanging事件并在其中手动更改PageIndex属性和重新DataBind就可以解决问题了。但如果你想优化SELECT方法为仅获取当前页的数据,那就没办法了,因为你无法手动设置GridView的PageCount属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值