2

我使用以下链接中的解决方案隐藏我的列

如何在 GridView 中隐藏 TemplateField 列

但是,这会导致更新操作出现问题,因为 gridview 充当隐藏行具有空值。那么如何在数据绑定后隐藏列呢?

protected void begv_OrderDetail_RowCreated(object sender, GridViewRowEventArgs e)
{
    ((DataControlField)begv_OrderDetail.Columns.Cast<DataControlField>().Where(fld => fld.HeaderText == "FileNo").SingleOrDefault()).Visible = "False";
}
4

2 回答 2

9

尝试这个,

grid1.Columns[columnIndex].Visible= false;

根据提问者的评论进行编辑,以获取隐藏列的值

您可以使用隐藏字段来存储列值。本文的示例将帮助如何使用隐藏字段。

您可以将列的数据放在 datakeynames 中,然后再访问这些值,而不是隐藏列。这对于了解如何使用DataKeyNames很有用。通过这种方法,您可能需要从数据键名中传递 id 并获取记录。

于 2012-10-09T19:13:11.127 回答
0

试试这个例子,(我不会说英语)

进入 RowDataBound ...

 protected void gvTeste_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            teste listaTeste = e.Row.DataItem as ListaTeste;

            if (listaTeste.ID == 0)
            {
                e.Row.Cells[2].Text = "Não Atribuido";
            }

            if (e.Row.Cells[7].Text == "01/01/0001" || e.Row.Cells[8].Text == "01/01/0001")
            {
                **e.Row.Visible = false;** // disable row
            }
        }
    }
于 2012-10-09T19:36:17.333 回答