原因:
传统的ObjectDataSource作为数据源,绑定ListView,可以不写一行代码,而完成插入、删除、更新、删除、分页等的功能!异常的强大!但ListView默认的分页方式是从数据库中取出所有的数据在根据页号等显示分页后的数据,所以我们想能不能某页就从数据中去会特定的数据呢?答案是 可以的!
高效分页技术步骤:
在你原有程序的基础上修改:
第一步:制作一个强类型的DataSet
添加2个函数:
第一个是:或者数据库中总的数据条数 QueryCount
SELECT COUNT(*) FROM T_News
第二个是:获取获取数据库中的 一段数据 GetPagedData
select * from
(SELECT Id, Title, Msg, CreateDate,Row_Number() over (order by Id) rownum FROM dbo.T_News)t
where t.rownum>@startRowIndex and t.rownum<=@startRowIndex+@maximumRows
会提示个警告不能生成Row_Number()函数但不影响使用,结果为
因为不能生成Row_Number()所以我们要手加第二个函数的参数!函数上右击属性
最终效果
第二步:配置要高效分页的数据源ObjectDataSource
重新配置数据源,选择获取数据的方法为刚才添加的GetPagedData,完成!
删除自动生成的 select方法
在手动添加一个获取数据总数的方法:
SelectCountMethod="QueryCount"
启动此数据源的分页功能:
设置ListView中的DataPager分页数为是10,OK!