Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net如何隐藏gridview列的TemplateField但仍访问其值_C#_Datagridview - Fatal编程技术网

C# asp.net如何隐藏gridview列的TemplateField但仍访问其值

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; } 我正试图隐藏此列,但出现以下错误。如果我删除了方法中的行,它就会工作。这里是错误。 索

我有一个datagridview,它是通过strored过程加载的。它有一个ID列,我想隐藏它,但仍然可以访问它的值。我设置了dataKeyNames,我有一个方法

     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>