我有一个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的实现并没有深入的了解,希望我没有忽略什么。