0

我在页面中有一个 GridView asp 服务器控件,并且我已将其 AllowPaging 设置为 true。现在,我想循环到整个行,但它只迭代到我定义的 PageSize 的数量。

这是asp代码:

 <asp:GridView ID="gvName" runat="server" AllowPaging="True" PageSize="5" AutoGenerateColumns="True"></asp:GridView>

这是后面的代码:

 List<string> list = new List<String>();
    for(int x = 0; x <= 9; x++)
    {
        list.Add("Name " + (x + 1).ToString()); 
    }

    gvName.DataSource = list;
    gvName.DataBind();

foreach(GridViewRow row in gvName.Rows)
{
    // gvName.Rows.Count only returns 5 instead of the total number of its record that is 10
}

提前感谢您的任何回答。

4

2 回答 2

3

这是分页工作方式的一个特性,而不是错误——它只为每个页面加载加载 x 行。根据您需要完成的任务,您可以:

  1. 循环浏览每个页面加载时的行(因为无论如何您都应该只关心可见的行,对吗?)
  2. 使用您的列表对象或GridView.DataSource(首先转换为适当的类型)循环浏览实际数据源。
于 2012-07-04T09:19:38.627 回答
0

使用网格事件OnRowDataBound事件对行进行您想要的所有工作

获取计数使用: int count = list.Count;

于 2012-07-04T09:21:46.840 回答