English 中文(简体)
在每个请求中不必检索所有行来使用 DataPager
原标题:
  • 时间:2009-01-09 20:54:58
  •  标签:

我有一个ListView,我正在将其数据绑定到一个类似于这样的对象集合:

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

其中,pageNum、pageSize和total参数在数据访问层中方便分页。到目前为止还不错。

现在我可以在页面上放置一个DataPager,将其指向ListView,并获得一个不错的分页UX。如果您是以编程方式而不是使用数据源控件进行声明性绑定,则需要更多操作,但这里的问题在于DataPager期望每次检索整个结果集,从中计算分页,因此它将返回的单个结果页视为可用记录的总数,并呈现为只有一页结果可用的形式。换句话说,如果我们切换到GetClients的非分页版本,上述情况将与DataPager很好地配合使用。

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

显然,由于我们的数据访问层很友善地提供了一种按页检索的方法,这比每次检索所有记录要好。如果我们能明确地告知DataPager可用的记录总数,那么它仍然可以自动创建分页输出,但只需要一页一页地执行即可。

我还没有找到简单的方法来做这个,而且搜索也没有找到任何东西。诚然,我目前对DataPager的实现并没有深入的了解,希望我没有忽略什么。

最佳回答

你没有忽略任何事情。

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

在我的经验中,<< < > >> 是够用的。反正也没人会去翻第三页。

问题回答

请查看ListViewPagedDataSource和其AllowServerPaging属性,我认为那可能是您想要的。





相关问题
热门标签