我试图在RowDataBound事件上隐藏我的gridview列。目前,我正在做:
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;
到目前为止,我无法这样做。有人能告诉我这里我做错了什么吗?
答案 0 :(得分:3)
怎么样
e.Row.Cells.Cast<TableCell>()
.Where(c => c.Text == "name")
.ToList()
.ForEach(col => col.Visible = false);
答案 1 :(得分:1)
如果有其他人发现这个。我修改了Nikhil的答案以隐藏整个列(包括标题)。
e.Row.Cells.Cast<DataControlFieldCell>()
.Where(c => c.ContainingField.HeaderText == "Name"
|| c.ContainingField.HeaderText == "Title")
.ToList()
.ForEach(c => c.ContainingField.Visible = false);