2012-01-05 38 views
1

如何根据GridView中的某个值隐藏行?如何根据任何值隐藏gridview中的任何行

例如我有一个5列的gridview,当列3的值为空时,我不想显示该行,应该隐藏该行。所以在gridview中,只有那些行应该是可见的,而列3具有任何值。 我认为这可以在GridView的RowDataBound事件中完成,但我怎么能隐藏它呢?

+4

为什么取的有空白性质的记录。使你的查询,以便它相应地提取。 – 2012-01-05 10:48:46

+2

我第二Pankajs评论。当你可以在控制器上做一个简单的检查时,Theres没有意见将它隐藏在视图上。这将节省带宽并且很容易实现。只需在sql语句中添加where子句。 – Doomsknight 2012-01-05 11:09:56

回答

0

添加RowDataBound事件和这样做:

if (e.Row.Cells[2].Text == "") e.Row.Visible = false; 

希望这会有所帮助。

5

试试这个:

private void GridView_RowDataBound(Object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.Cells[2].Text == "") 
     e.Row.Visible = false; 
} 
+0

只需添加一些信息,Devexpress现在推荐使用CustomRowFilter。它工作得很好。 https://documentation.devexpress.com/#WindowsForms/DevExpressXtraGridViewsBaseColumnView_CustomRowFiltertopic – 2017-01-30 21:46:38

1
if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
    e.Row.Visible = false; 
} 
0

您可以使用数据绑定方法

protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
    foreach (GridViewRow rw in GridView1.Rows) 
    { 
     TextBox tx = (TextBox)rw.FindControl("txtHC"); 

     if (tx.Text == "Value") 
      rw.Visible = false; 

    } 
}