如果gridview没有返回数据,则隐藏asp标签

时间:2014-12-24 12:10:06

标签: c# asp.net

如果gridview没有返回数据,如何隐藏标签 我试过了。以下但不确定它是否是正确的方法。

<asp:Label runat="server" Text="Device Information " id="DeviceInformation"></asp:Label>



protected void GridView3_DataBound(object senwder, EventArgs e)
{
   int rowCount = GridView3.Rows.Count;

   if (rowCount == 0)
   {
      DeviceInformation.Visible= False;                
   }
   else
   {
     DeviceInformation.Visible= True;
   }
}

还有其他解决方案吗?

3 个答案:

答案 0 :(得分:1)

在这种情况下,因为没有行,所以 RowDataBound 事件不会触发,因为在向 gridview 添加行时会触发它,您可以隐藏当时的标签将数据源分配给gridview:

gridView1.DataSource = SomeSource;
gridView1.DataBind();

if(gridView1.Rows.Count == 0)
{
 // hide label here
}

答案 1 :(得分:0)

您可以像这样使用GridView的DataBound事件:

  protected void gr_DataBound(object sender, EventArgs e)
    {
      DeviceInformation.Visible = GridView3.Rows.Count > 0;
    }

注意:我看到你的标签不是gridview的项目,所以我写的是这样的。如果您的标签是gridview的项目,则应使用FindControl方法查找并设置其可见属性。

答案 2 :(得分:-1)

Label lblDeviceInformation = (Label)GridView3.FindControl("DeviceInformation");
int rowCount = GridView3.Rows.Count;
if (rowCount == 0)
{
  lblDeviceInformation .Visible= False;
}
else
{
  lblDeviceInformation .Visible= True;
}