5

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

谢谢。

4

3 回答 3

4

onclick="this.enabled=false" 将此代码从后面的代码添加到您的控件中

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

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

于 2010-01-28T09:55:00.420 回答
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>

希望这可以帮助。

于 2010-01-28T11:10:37.020 回答
0

我会在按钮周围使用 UpdatePanel。单击时,您可以在服务器端禁用该按钮。如果您的外部进程返回结果,请在更新面板上使用触发器,该触发器每隔 x 秒查看一次。我建议您将长时间运行的进程引入 Windows 服务。

于 2010-01-28T10:06:18.270 回答