首页 > 解决方案 > 在使用更新过程在按钮单击时加载图像时,它允许单击其他按钮

问题描述

在更新面板里面我有 40 个按钮:Button1、Button2、Button3 等

每次单击按钮时,文本将存储到一个变量中,如下所示:

protected void Button1_Click(object sender, EventArgs e)
    {
        string text1="You clicked button1";
    }

当我单击 Button1 时,更新过程中的 ajax gif 将启动,但同时它允许单击其他按钮。

我该如何预防?

除了使用 updateprocess 之外,还有其他方法吗?

标签: javascriptc#asp.netasp.net-ajax

解决方案


经过讨论,我们在评论中进行了讨论,如果我理解正确,您可以OnClientClick在用户单击客户端时使用禁用按钮。点击功能完成后,您可以从服务器端启用所有这些按钮。

客户端:

<script>
    function DisableButtons() {
        $("#<%=btn1.ClientID %>").attr('disabled', true);
        $("#<%=btn2.ClientID %>").attr('disabled', true);
        //other buttons
    }

</script>

<asp:Button ID="btn1" Text="Button 1" runat="server" OnClick="btn1_Click" OnClientClick="DisableButtons();"  UseSubmitBehavior="false" />
<asp:Button ID="btn2" Text="Button 2" runat="server" OnClick="btn2_Click" OnClientClick="DisableButtons();"  UseSubmitBehavior="false"  />
<%--Other buttons--%>

请注意,您还需要添加UseSubmitBehavior="false" 到按钮。

服务器端:

protected void btn1_Click(object sender, EventArgs e)
{
    //other processes
    SetButtonsEnable();
}

protected void SetButtonsEnable()
{
    btn1.Attributes.Remove("disabled");
    btn2.Attributes.Remove("disabled");
    //other buttons
}

推荐阅读