我使用以下链接中的解决方案隐藏我的列
How to hide a TemplateField column in a GridView
但是这会导致更新操作出现问题,因为gridview充当隐藏行具有空值。那么如何在数据绑定后隐藏列?
protected void begv_OrderDetail_RowCreated(object sender, GridViewRowEventArgs e)
{
((DataControlField)begv_OrderDetail.Columns.Cast<DataControlField>().Where(fld => fld.HeaderText == "FileNo").SingleOrDefault()).Visible = "False";
}
答案 0 :(得分:9)
试试这个,
grid1.Columns[columnIndex].Visible= false;
根据提问者的评论进行编辑,以获取隐藏列的值
您可以使用隐藏字段来存储列明智的值。这个article有一些示例可以帮助您使用隐藏字段。
您可以将列数据放在datakeynames中,然后访问这些值,而不是隐藏列。这对于了解如何使用 DataKeyNames 非常有用。通过此方法,您可能需要从数据键名称传递id并获取记录。
答案 1 :(得分: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
}
}
}