如何在asp.net c#中计算gridview中的行数。

3
我有一个网格视图,正在正确地填充数据。当用户按下“搜索”按钮时,将调用ShowData()函数,该函数基于输入到文本框中的条件呈现数据。我想要能够计算网格视图中创建了多少行。
我知道我可以从SQL数据库表中直接进行计数,但我觉得仅仅计算网格视图中的行会更容易!(如果我错了,请纠正我!)
我已经尝试在ShowData()函数的代码后台中使用search_results = GridView1.Rows.Count.ToString();,并使用以下标记:
<div class="size_info" id="allSelected" runat="server" visible="false"><br />
                There are <asp:Label ID="search_results" runat="server"></asp:Label> entries for this search criteria.  
</div>
</div>

但它似乎没有返回任何值(甚至不是0!)。

非常感谢您的任何帮助!


2
GridView1.RowCount - Alfie Goodacre
如果您想在代码后台完成此操作,为什么要从GridView计算行数?当您将DataTable与GridView绑定时,为什么不使用DataTable.Rows.Count()呢? - A3006
2个回答

3
search_results = GridView1.Rows.Count.ToString();

这段代码会导致编译错误,错误信息为:

无法将 System.String 转换为 System.Web.UI.Label

建议使用以下代码:

search_results.Text = GridView1.Rows.Count.ToString();

确保此代码在网格绑定后编写。

1
如果你启用了“分页”,使用“GridView1.Rows.Count”只会得到当前页面的行数,所以如果“PageSize”等于10并且你有60行,则会得到错误的结果10!在这种情况下,你需要按照以下方式操作:
protected void GridView1_OnRowDataBound(object sender, GridViewRowEventArgs e)
    {
        var d = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
        if (d != null) lblGridRowsCount.Text = d.Count.ToString();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接