2009-08-21 108 views
1

我有一个GridView,它具有可以触发emptydata模板的过滤器。然而,当这个显示时,我仍然可以看到我的gridview的轮廓。当数据不存在时,如何让Gridview消失?隐藏Gridview

回答

10
protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
    if (this.GridView1.Rows.Count == 0) 
     this.GridView1.Visible = false; 
} 
+0

我想什么是为被隐藏GridView的边界。 Databoud是做这件事的正确地点。谢谢 – Eric 2009-08-21 21:46:42

0

将Visible属性设置为false隐藏控件本身或隐藏其父控件(即包含面板)。

+0

听起来不错...但我怎么能做到这一点的代码,在哪里? Gridview的数据绑定?我怎样才能访问代码中的emptydata模板? – Eric 2009-08-21 21:03:03

+0

GridView控件是一个ASP.NET控件,这意味着将有一个“可见”属性,让您可以显示或隐藏控件本身。 GridView.Visible = false; 将阻止在所有呈现的控制。 – jscharf 2009-08-21 21:31:35

3
<asp:Gridview id="gridview" ...... 
     Visible='<%# ((ICollection)gridview.DataSource).Count == 0 ? false : true %>'> 
0

只是要DataSource NULL,并重新Bind()GridView,它应该隐藏自己!

myGridView.DataSource = null; 
myGridView.DataBind(); 

另外要小心使用.Visible,因为以后找到它可能是不可能的。如果必须使用.Visible = false;我建议使用myGridview.Attributes.Add("style","display:none");