我有一个正确填充的gridview。当用户按下“搜索”按钮时,将调用函数ShowData(),该函数根据输入到文本框中的条件显示数据。我希望能够计算gridview中创建的行数。
我知道我可以从SQL数据库表中算出它,但我觉得简单地计算gridview中的行会更容易! (如果我错了,请纠正我!)
我试图在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!)。
任何帮助都将非常感谢!
答案 0 :(得分:3)
search_results = GridView1.Rows.Count.ToString();
会将编译错误视为
System.String无法转换为System.Web.UI.Label
使用
search_results.Text = GridView1.Rows.Count.ToString();
并确保在绑定网格后写入此内容。
答案 1 :(得分:0)
如果启用了Pagination
,则通过使用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();
}