Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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# 如何在数据绑定后隐藏gridview列?_C#_Asp.net_Gridview_Sqldatasource - Fatal编程技术网

C# 如何在数据绑定后隐藏gridview列?

C# 如何在数据绑定后隐藏gridview列?,c#,asp.net,gridview,sqldatasource,C#,Asp.net,Gridview,Sqldatasource,我使用以下链接中的解决方案隐藏我的列 但是,这会导致更新操作出现问题,因为gridview充当的隐藏行具有空值。那么如何在数据绑定后隐藏列呢 protected void begv_OrderDetail_RowCreated(object sender, GridViewRowEventArgs e) { ((DataControlField)begv_OrderDetail.Columns.Cast<DataControlField>().Where(fld =>

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

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

protected void begv_OrderDetail_RowCreated(object sender, GridViewRowEventArgs e)
{
    ((DataControlField)begv_OrderDetail.Columns.Cast<DataControlField>().Where(fld => fld.HeaderText == "FileNo").SingleOrDefault()).Visible = "False";
}
protectedvoid begv\u OrderDetail\u RowCreated(对象发送方,GridViewRowEventArgs e)
{
((DataControlField)begv_OrderDetail.Columns.Cast()。其中(fld=>fld.HeaderText==“FileNo”).SingleOrDefault()).Visible=“False”;
}
试试这个

grid1.Columns[columnIndex].Visible= false;
根据提问者的评论进行编辑,以获取隐藏列的值

可以使用隐藏字段来存储按列显示的值。下面的示例将帮助您使用隐藏字段


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

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

进入行数据绑定

 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
            }
        }
    }

这是行不通的。我手动为Gridview的数据库添加了一些值。当“我的列”隐藏时,“更新”按钮将此值更新为null。当列未隐藏时,更新按钮后的默认值保持不变。(这与我的有什么区别?它们不一样吗?)您可以将列的数据放在DataKeyName中,然后访问这些值,而不是隐藏列。这将有助于理解这一概念。非常感谢,将隐藏列的数据值添加到datakeyname解决了我的问题。问题是隐藏行时不更新,这次,当隐藏行可见时,它不会更新值,因为它使用datakeyname作为参数,并保留当前值他希望隐藏列而不是行!