C# Gridview,隐藏/显示命令字段编辑按钮。有点正常,有点不正常

C# Gridview,隐藏/显示命令字段编辑按钮。有点正常,有点不正常,c#,button,gridview,templatefield,commandfield,C#,Button,Gridview,Templatefield,Commandfield,我试图在GridView上隐藏(或显示)编辑命令字段按钮。为了做到这一点,我下面的例子()非常有效。我将该字段转换为一个名为button的templatefield,并确保它可以正常工作(按预期隐藏/显示)。耶 但有一个问题。当我点击编辑按钮时,我没有进入编辑模式,实际上我得到了一个错误。错误是“对象引用未设置为对象的实例”。这是在“btnEdit.Visible=false 我确实有另一种单独的技术来隐藏编辑按钮,当RowDataBound事件中满足条件时,该按钮将使用.Controls.Cl

我试图在GridView上隐藏(或显示)编辑命令字段按钮。为了做到这一点,我下面的例子()非常有效。我将该字段转换为一个名为button的templatefield,并确保它可以正常工作(按预期隐藏/显示)。耶

但有一个问题。当我点击编辑按钮时,我没有进入编辑模式,实际上我得到了一个错误。错误是“对象引用未设置为对象的实例”。这是在“btnEdit.Visible=false

我确实有另一种单独的技术来隐藏编辑按钮,当RowDataBound事件中满足条件时,该按钮将使用.Controls.Clear()。完整的一行是“e.Row.Cells[e.Row.Cells.Count-1].Controls.Clear();”问题是,当我单击“编辑”按钮将dgo切换到编辑模式时,更新和取消按钮不在那里。我估计他们在上一个命令中被清除了

        if (CanEdit == false)
        {
            //disble row editing
            //e.Row.Cells[e.Row.Cells.Count - 1].Controls.Clear();

        }
所以我的问题可以是一个或另一个。如何将字段转换为模板字段,使编辑按钮可见,并在单击按钮时进入编辑模式。或者,如何使用hte.Controls.Clear()方法,但只清除编辑按钮


非常感谢你

在哪里运行使按钮可见或不可见的代码?在哪个GridView事件?@codingstill中,按钮默认可见,并且上面引用的两种技术都出现在GridView RowDataBound事件中。我试图报告错误,但没有成功。一个想法是:在Page_load(…)事件中绑定GridView时,是否有if(!Page.IsPostBack){…}?在我的PageLoad Section中,回发的唯一内容是执行SQL存储过程并将结果加载到文本框中。我需要为我目前的问题做点什么吗
if(!IsPostBack){txtSessionNotes.Text=ToolBox.GetSessionNotes();}
尝试将绑定GridView的代码放入if(!Page.IsPostBack){…}
        if (CanEdit == false)
        {
            //disble row editing
            //e.Row.Cells[e.Row.Cells.Count - 1].Controls.Clear();

        }