C# 中的 GridView 分页
我正在使用 PageIndexChanging
事件来处理 C# 中的 GridView 分页。但不知道如何在那里使用 PageSize/PageNumber/PageCount 。换句话说,我的代码被迫始终返回所有数据。请注意以下代码:
protected void grdList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
grdList.PageIndex = e.NewPageIndex;
grdList.DataSource = MyGetData();
grdList.DataBind();
}
现在我如何在此代码中使用真正的分页?
请注意,MyGetData
也有一个重载,可以获取 PageIndex
和 PageSize
。
更新
我也设置了PageSize
并启用了AllowPaging
。我知道如果我使用声明性数据绑定,我应该向 GridView 提供所有数据的计数。问题是如何在此方法中使用计数。
更新2 看来我需要的这样的事情是不可能的,请参阅 问题无需数据源控制的高效Gridview分页
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
GridView 中的高效分页需要对数据进行计数,否则 GridView 会加载每个页面中的所有数据。由于在不使用 DataSource 控件时无法告诉 GridView 数据的数量是多少,因此如果没有 DataSource 控件,则不可能在 GridView 中进行有效的分页。有关更多信息,请访问此链接和此链接。
Efficient paging in GridView needs count of data, otherwise GridView loads all data in each page. As there is no way to tell GridView what is the count of data when not using DataSource controls, it's impossible to have efficient paging in GridView without having DataSource control. For more info go to this link and this link.
您可以设置页面大小 在 GridView 控件中。
You can set the PageSize in the GridView control.
您需要设置
PageSize="10"
请参阅此链接:http://www.dotnetspider.com/resources/1249-Grid-View-Paging-Sorting.aspx
you need to set
PageSize="10"
see in this link: http://www.dotnetspider.com/resources/1249-Grid-View-Paging-Sorting.aspx
如果您的 MyGetData 方法已经接受 pageindex 和 pagesize,那么您所需要的只是:
但这似乎有点过于简单,所以我可能在这里遗漏了一些东西。
If your
MyGetData
method already accepts pageindex and pagesize, then all you'd need is:but this seems a bit too simplistic so I'm probably missing something here.