如何检查空Gridview

zoh*_*air 15 c# asp.net null gridview

我有一个ASP.NET 2.0(C#)Web应用程序,在其中我有一个gridview从oracle数据库获取其数据.

我想知道如何检查gridview是否为空,并做了些什么.

我已经尝试过了:

if(GridView.Rows.Count == 0)
{
// Do Something
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用......

有任何想法吗?

谢谢.

Al *_*l W 22

你的代码应该有效.但只有在调用了GridView.DataBind()之后.一般来说,我不检查GridView是自己的,而是检查网格视图的数据源.

DataTable data = DAL.getdata();
if (data.Rows.Count == 0)
{
    ShowEmptyData();
}
else
{
    Grid.DataSource = dt;
    Grid.DataBind();
}
Run Code Online (Sandbox Code Playgroud)


Meh*_*ari 19

这不起作用,因为它GridView是数据绑定的,并且将在以后呈现页面时获取实际数据.您应该通过直接查询gridview的数据绑定源来检查这一点(查看绑定到网格视图的实际列表是否为空).

如果你只是想在空的时候显示一些东西,你应该<EmptyDataTemplate>在你的标记中使用:

<asp:GridView runat="server">
<EmptyDataTemplate>The grid is empty</EmptyDataTemplate>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

  • +1您还可以使用EmptyDataText属性 (3认同)
  • +1- EmptyDataTemplate是最优雅的解决方案恕我直言 (2认同)

Can*_*var 8

我同意其他答复.我想添加一些信息,你应该在databind方法之后得到rows.count:

int rowCount = GridView.Rows.Count; // returns zero

GridView.DataBind();

rowCount = GridView.Rows.Count; // returns actual row count
Run Code Online (Sandbox Code Playgroud)