【问题标题】:Paging in GridviewGridview 中的分页
【发布时间】:2010-05-05 09:28:47
【问题描述】:

在我的 gridview 中,我有 6 页。当我转到第二页并尝试按任何列的降序排序时,我会返回到第 1 页。有没有办法留在第二页?

【问题讨论】:

  • 为什么要在排序时停留在第 2 页,因此可见数据完全改变了?
  • 第 2 页仅作为示例。它可以是任何页面,而用户只想对该页面进行排序?
  • "它可以是任何页面并且用户只想对该页面进行排序?"这是一个重要的通知。使用分页和排序似乎是矛盾且毫无意义的,但用户只能对一页进行排序。通常整个数据源都会被排序,当行数超过 PageSize(f.e. 10) 时,GridView 会创建 Pages。

标签: c# asp.net gridview


【解决方案1】:

您需要在排序之后但在 DataBind 之前在排序方法中分配 GridView 的当前 PageIndex 属性。

【讨论】:

  • 您是否按照大卫的建议在 排序方法 中设置了您的网格视图的 PageIndex?您找到其他解决方案了吗?
【解决方案2】:

PageIndexChanging事件中,你需要设置页面并重新绑定你的数据。比如下面这样:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    bindGridView();//a method that re/sets the datasource
}

检查this article

【讨论】:

  • 您是否打开了分页功能? AllowPaging="True"PageSize="10"。同样在页面加载时,我相信您有类似的东西if (!IsPostBack) bindGridView();
  • 您是否打开了分页功能?是 AllowPaging="True" 是和 PageSize="10" 是。同样在页面加载时,我相信你有这样的东西 if (!IsPostBack) bindGridView();我只是试过了,它没有用。问题不在于分页和排序。问题是在排序完成后停留在第 2 页??
  • @Jeff:就此而言,请参阅 Tim 的回复。一种解决方法是,将 currentPageNo 保存在 ViewState 中,一旦排序完成,手动将 GridView1.PageIndex 设置为 currentPageNo 并重置数据源。
猜你喜欢
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多