如何禁用在ASP.NET UpdatePanel上导致回发的提交按钮

时间:2013-12-16 12:21:11

标签: javascript asp.net updatepanel

我的内页UpdatePanel有几个按钮。每个按钮都会导致PostBack事件。但我发现用户可以在按钮和崩溃应用程序中多次单击。我想要在第一次点击时禁用所有按钮,直到回复将被处理并且UpdatePanel的新内容到达。

我尝试将(通过jquery)绑定到按钮的“click”事件,设置'disabled;属性并在父表单上调用'submit'。不幸的是,这种方法似乎不起作用 - UpdatePanel的内容仍旧。

之后我试图覆盖'submit'事件,但面临另一个问题 - 如果我每次来到我的处理程序,如何再次提交表单?它可以通过引入标志变量来修复,但我不喜欢它 - 另一个变量只是增加代码熵。

也许我可以用ASP.NET方法以某种方式做到这一点?

1 个答案:

答案 0 :(得分:0)

应用ajax UpdateProgress并将您的代码放在UpdatePanel中,以便在第一次单击后禁用Button:

<aspAtlas:UpdateProgress ID="upUpdatePanelProgress" runat="server" DisplayAfter="0"
            DynamicLayout="true" AssociatedUpdatePanelID="updpnlProgram">
            <ProgressTemplate>
                <asp:Panel ID="Panel1" CssClass="overlay" runat="server">
                        <img runat="server" id="img1" src="../Images/UpdateProgress.gif" alt="Loading..." /><br />
                        <br />
                        <b>Loading...</b>
                    </asp:Panel>
            </ProgressTemplate>
        </aspAtlas:UpdateProgress>
 <aspAtlas:UpdatePanel runat="server" ID="updpnlProgram" UpdateMode="Conditional">
        <ContentTemplate>
<div>
//--Your code in this div
</div>
 </ContentTemplate>
        <Triggers>
            <aspAtlas:PostBackTrigger ControlID="Button_ID" />
        </Triggers>
    </aspAtlas:UpdatePanel>