0

我在用

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

使单个列不可见。它有效,但是当我尝试像这样添加另一个时:

e.Row.Cells[0].Visible = false; 
e.Row.Cells[1].Visible = false; //i tried listing all and still got the out of range error 

我得到错误Specified argument was out of the range of valid values. Parameter name: index

我正在使用 GridviewRowDataBound事件中的命令,从 0 开始,gridview 有 12 列

4

2 回答 2

1

考虑到 aGridView有一些不是数据的行(pager、footer 等)。

我会说你应该有这样的东西,所以你只对DataRow元素应用隐藏逻辑。

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

要查看所有行类型,请查看此 MSDN 文章

于 2013-10-29T15:36:43.200 回答
1

如果您的 Gridview 有 autogeneratecolumns = true ,则可能需要将代码放入RowCreated事件而不是RowDataBound事件中。

这是一个类似的答案: How To Hide Columns with auto-generated columns

于 2013-10-29T15:46:42.027 回答