0

我试图在 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;

到目前为止,我无法这样做。有人可以告诉我我在这里做错了什么吗?

4

2 回答 2

3

怎么样

e.Row.Cells.Cast<TableCell>()
           .Where(c => c.Text == "name")
           .ToList()
           .ForEach(col => col.Visible = false);
于 2012-09-30T05:44:42.140 回答
1

以防其他人发现这个。我修改了 Nikhil 的答案以隐藏整个列(包括标题)。

e.Row.Cells.Cast<DataControlFieldCell>()
    .Where(c => c.ContainingField.HeaderText == "Name" 
             || c.ContainingField.HeaderText == "Title")
    .ToList()
    .ForEach(c => c.ContainingField.Visible = false);
于 2015-02-09T04:43:37.970 回答