如果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;
}
}
还有其他解决方案吗?
答案 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;
}