加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 使用DataPager而不检索每个请求的所有行

发布时间:2020-12-16 06:41:13 所属栏目:asp.Net 来源:网络整理
导读:我有一个ListView,我正在数据绑定到这样的对象集合: int total;ListClient clientList = clientData.GetClients(criteria,pageNum,pageSize,out total);uxClientList.DataSource = clientList;uxClientList.DataBind(); 其中pageNum,pageSize和total参数有
我有一个ListView,我正在数据绑定到这样的对象集合:

int total;
List<Client> clientList = 
    clientData.GetClients(criteria,pageNum,pageSize,out total);
uxClientList.DataSource = clientList;
uxClientList.DataBind();

其中pageNum,pageSize和total参数有助于在数据访问层进行分页.到现在为止还挺好.

现在我可以在页面上抛出一个DataPager,将它指向ListView并获得一个不错的分页UX. There’s a little more to it when you’re binding programmatically instead of declaratively with a data source control,但问题在于DataPager期望每次都检索整个结果集,从中应该计算分页,因此它会将结果的单页返回为总可用记录并呈现为好像只有一页结果可用.换句话说,如果我们切换到GetClients的非分页版本,上面的场景适用于DataPager:

List<Client> clientList = clientData.GetClients(criteria);
uxClientList.DataSource = clientList;
uxClientList.DataBind();

显然,由于我们的数据访问层足以为我们提供一次检索页面的方法,因此最好每次检索所有记录.如果我们能够明确告知DataPager总可用记录,那么它仍然可以自动创建分页输出,但一次只需要一个页面就可以了.

我没有找到一个简单的方法来做到这一点,我没有在搜索中发现任何东西.诚然,我目前对DataPager的实现没有深刻的理解,所以希望我忽略了一些东西.

解决方法

你没有忽视任何事情.

处理大型结果集时,您需要关闭分页并添加自己的分页控件.

根据我的经验<< < > >>满足.无论如何,没有人超过第3页.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读