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

标签 asp.net pagination

我有一个 ListView,我正在将数据绑定(bind)到一组对象,如下所示:

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 的实现没有深入的了解,所以希望我忽略了一些东西。

最佳答案

查看 ListViewPagedDataSource 及其 AllowServerPaging属性(property),我认为 可能成为你正在寻找的东西..

关于asp.net - 使用 DataPager 而不检索每个请求的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/429707/

相关文章:

jquery - Django 延迟加载分页

sql - 如何在SQL Server 2008中进行分页

php - 创建表排序器分页时表行消失

android - 如何在 Android 中实现分页 ListView

javascript - 循环遍历数组以检查复选框

c# - 在将发送到电子邮件的 html 中添加 css

asp.net - 在网络表单中显示不同的选择?

php - 将分页与查询字符串一起用于搜索表单,该表单的方法设置为在 codeigniter 中获取

c# - ExecuteReader等待操作超时错误

c# - 在 sql for asp.net gridview 中使用 ROW_NUMBER() 自定义分页