在回发期间禁用asp.net动态按钮单击事件,然后启用它

时间:2010-01-28 09:52:49

标签: c# asp.net postback dynamically-generated

我正在代码中动态创建一个按钮并将click事件附加到它。但是,我必须阻止人们在进行过程中点击它。因此,当它被单击一次时,它应该被禁用,当进程结束时,它应该被启用。我怎么能这样做?

感谢。

3 个答案:

答案 0 :(得分:4)

onclick =“this.enabled = false”将此代码从您的代码添加到您的控件

btnAdd.Attributes.Add(“onclick”,“this.enabled = false;”);

此链接详细说明了http://encosia.com/2007/04/17/disable-a-button-control-during-postback/

答案 1 :(得分:2)

如果您在点击按钮时通过ajax进行处理 - 1.处理开始时禁用按钮 2.处理完成后启用按钮

如果按钮回发,最好的方法是在通过javascript点击按钮时禁用按钮[我不会仅为此特定任务建议jquery]。由于回发后按钮将会像之前一样启用,因此您无需担心启用。

    <asp:Button ID="btn" runat="server" OnClientClick="disable(this)"
Text="Click me!" OnClick="btn_Click" />

 <script type="text/javascript">
        function disable(control)
        {
            control.disabled="disabled";
            //added alert to give the snapshot of what happens
            //when the button is clicked
            alert(100);
        }
 </script>

希望这有帮助。

答案 2 :(得分:0)

我会在按钮周围使用UpdatePanel。单击时,您可以在服务器上禁用该按钮。如果您的extern进程返回结果,请在updatepanel上使用一个每x秒查看一次的触发器。我建议你将长时间运行的进程导出到Windows服务中。