如果网格视图不返回任何数据,则隐藏 asp 标签

本文关键字:隐藏 asp 标签 数据 任何 网格 视图 返回 如果 | 更新日期: 2023-09-27 18:35:22

如果网格不返回任何数据,如何隐藏标签我试过了。下面,但不确定它是否正确。

<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;
   }
}

还有其他解决方案吗?

如果网格视图不返回任何数据,则隐藏 asp 标签

在这种情况下,

由于没有行,因此 RowDataBound 事件不会触发,因为它是在将行添加到网格视图时触发的,您可以在将数据源分配给网格视图时隐藏标签:

gridView1.DataSource = SomeSource;
gridView1.DataBind();
if(gridView1.Rows.Count == 0)
{
 // hide label here
}
你可以

像这样对GridView进行数据绑定事件:

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

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

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