C# asp.net如何隐藏gridview列的TemplateField但仍访问其值
我有一个datagridview,它是通过strored过程加载的。它有一个ID列,我想隐藏它,但仍然可以访问它的值。我设置了dataKeyNames,我有一个方法C# asp.net如何隐藏gridview列的TemplateField但仍访问其值,c#,datagridview,C#,Datagridview,我有一个datagridview,它是通过strored过程加载的。它有一个ID列,我想隐藏它,但仍然可以访问它的值。我设置了dataKeyNames,我有一个方法 protected void grdTime_OnDataBound(object sender,EventArgs e) { grdTime.Columns[1].Visible = false; } 我正试图隐藏此列,但出现以下错误。如果我删除了方法中的行,它就会工作。这里是错误。 索
protected void grdTime_OnDataBound(object sender,EventArgs e)
{
grdTime.Columns[1].Visible = false;
}
我正试图隐藏此列,但出现以下错误。如果我删除了方法中的行,它就会工作。这里是错误。
索引超出范围。必须为非负数且小于集合的大小。
参数名称:index在方法中尝试此代码,然后选中
grdTime.Columns[0].Visible=false 隐藏创建的事件行中的列
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[1].CssClass = "hiddencol";
//e.Row.Cells[2].CssClass = "hiddencol";
}
else if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[1].CssClass = "hiddencol";
//e.Row.Cells[2].CssClass = "hiddencol";
}
}
这里的hiddencol
是一个css类
.hiddencol
{
display:none;
}
在上面的代码中,我隐藏了网格的第二列如果您将GridView设置为true
(默认值),则Columns集合为空。那么,以下几点应该起作用:
1.)
(二)
您可以在.aspx页面上的gridview标记中这样使用
<Columns>
<asp:BoundField HeaderText="Merchandise Id" DataField="MerchandiseId" Visible="false" /></columns>
foreach (TableRow row in GridView1.Controls[0].Controls)
{
row.Cells[0].Visible = false;
}
<Columns>
<asp:BoundField HeaderText="Merchandise Id" DataField="MerchandiseId" Visible="false" /></columns>