1

我正在使用PageIndexChanging事件来处理 C# 中的 GridView 分页。但不知道如何在那里使用 PageSize/PageNumber/PageCount。换句话说,我的代码被迫总是返回所有数据。注意以下代码:

protected void grdList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
        grdList.PageIndex = e.NewPageIndex;
        grdList.DataSource = MyGetData();
        grdList.DataBind();
}

现在如何在这段代码中使用真正的分页?

请注意, get也MyGetData有一个重载。PageIndexPageSize

更新

我也设置PageSize并启用AllowPaging了。我知道如果我使用声明性数据绑定,我应该为 GridView 提供所有数据的计数。问题是如何在这种方法中使用计数。

UPDATE 2 看来我需要的这样的事情是不可能的,请参阅没有数据源控制的高效 Gridview 分页问题

4

4 回答 4

1

GridView 中的高效分页需要对数据进行计数,否则 GridView 会加载每个页面中的所有数据。由于不使用 DataSource 控件时无法告诉 GridView 的数据计数是多少,因此在没有 DataSource 控件的情况下,不可能在 GridView 中进行有效的分页。有关更多信息,请访问此链接此链接

于 2010-09-24T13:26:02.040 回答
0

您可以在GridView控件中设置PageSize 。

于 2010-09-23T12:44:36.700 回答
0

你需要设置PageSize="10"

请参阅此链接: http: //www.dotnetspider.com/resources/1249-Grid-View-Paging-Sorting.aspx

于 2010-09-23T12:46:42.873 回答
0

如果您的MyGetData方法已经接受 pageindex 和 pagesize,那么您只需要:

protected void grdList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    grdList.PageIndex = e.NewPageIndex;
    grdList.DataSource = MyGetData(e.NewPageIndex, grdList.PageSize);
    grdList.DataBind();
}

但这似乎有点过于简单,所以我可能在这里遗漏了一些东西。

于 2010-09-23T17:18:52.223 回答