Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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# 按钮单击时不可见_C#_Asp.net - Fatal编程技术网

C# 按钮单击时不可见

C# 按钮单击时不可见,c#,asp.net,C#,Asp.net,我有一个按钮,当我声明它时,我使它可见=false。 但是当页面加载时,在pre-render函数中,我将其设置为visible=true。它工作正常,但当我点击按钮(插入)时,按钮再次变为不可见,但我希望该按钮可见 <asp:Button ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Visible="false" Text="In

我有一个按钮,当我声明它时,我使它可见=false。 但是当页面加载时,在pre-render函数中,我将其设置为visible=true。它工作正常,但当我点击按钮(插入)时,按钮再次变为不可见,但我希望该按钮可见

<asp:Button ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Visible="false"
                        Text="Insert"  />

 protected void Page_PreRender(object sender, EventArgs e)
    {
         Button btValue = (Button)FormView1.FindControl("InsertButton");
            if (btValue != null)
        {
            btValue.Visible = true; //IT COMES HERE, WHEN I DEBUG
        }
    }

受保护的无效页面\u预呈现(对象发送方,事件参数e)
{
按钮btValue=(按钮)FormView1.FindControl(“InsertButton”);
如果(btValue!=null)
{
btValue.Visible=true;//当我调试时,它出现在这里
}
}

当页面加载时,按钮变为可见,但我一单击“插入按钮”,它就变为不可见。

发生的事情是,页面渲染事件(实际上不是事件)中有Wirten代码,该代码首先被执行,然后按钮的渲染触发,导致可见性将其设置回false(按照标记中的指示)。若您处理按钮的渲染/预渲染事件并在那个里设置可见性,那个么您应该很好

代码应该如下所示

    <asp:Button ID="myButton" runat="server" onprerender="myButton_PreRender" /> 

    protected void myButton_PreRender(object sender, EventArgs e)
    {

    }

受保护的void myButton_预呈现(对象发送方,事件参数e)
{
}

似乎在代码中的其他地方,您正在将其可见性设置回
False
。尝试调试代码,方法是声明性地将按钮的可见性设置为
True
。一旦按下按钮,会发生什么情况?但您可以使用(!postback)在页面加载时执行相同的操作。问题是,我有两个按钮,在运行时我只希望有一个按钮可见。因此,如果我保持visible=True,当我声明在页面加载时,只有一个按钮可见,当我单击按钮时,两个按钮都变为可见。@rushankshah不,我不能,因为我有一些需要首先绑定的东西。因此,此代码只有在写入时才有效预渲染中有十个。我正在使用预渲染(我已编辑)。你能告诉我如何使用按钮渲染/预渲染事件吗?当我尝试调试时,代码出现在“myButton\u PreRender”函数中,但当我单击按钮时,它没有出现在“myButton\u PreRender”中函数这是因为最初您的按钮具有visible=false,这导致您的按钮无法生成html标记。您可以通过使其visible=true来检查它。问题是,我有2个按钮,我只希望在运行时有1个按钮可见。因此,如果我保持visible=true,当我声明时,在页面加载时,只有1个按钮可见,如我所示单击按钮,两个按钮都变为可见。更好的选择是使用javascript更改可见性。最初,让它可见,然后在加载文档时使它不可见,然后根据您的逻辑,可以使它再次可见。