2012-09-30 78 views
0

我想隱藏我RowviewBound事件上的GridView列。目前,我做:隱藏GridView列使用LINQ

e.Row.Cells[4].Visible = false; 

這種方法的問題是,每當我改變電網教職員列的順序,我也必須在這裏更改索引。

此外,還有另一種方法:

foreach (TableCell col in e.Row.Cells) 
     { 
      if (col.Text == "Name") 
      { 
       col.Visible = false; 
      } 
     } 

我被人認爲有可能使用LINQ說。

喜歡的東西:

((TableCell)e.Row.Cells.Cast<TableCell>() 
      .Where(c => c.Text == "name")).Visible = false; 

到目前爲止,我不能這樣做。有人能告訴我我在這裏做錯了嗎?

回答

3

如何

e.Row.Cells.Cast<TableCell>() 
      .Where(c => c.Text == "name") 
      .ToList() 
      .ForEach(col => col.Visible = false); 
+0

讓我試試這個。 :) –

+0

哇!有效。謝謝:) –

+0

老兄,它只隱藏標題不是行。:( –

1

如果任何人發現這一點。我修改了Nikhil的答案來隱藏整個列(包括標題)。

e.Row.Cells.Cast<DataControlFieldCell>() 
    .Where(c => c.ContainingField.HeaderText == "Name" 
      || c.ContainingField.HeaderText == "Title") 
    .ToList() 
    .ForEach(c => c.ContainingField.Visible = false);