我的内页UpdatePanel有几个按钮。每个按钮都会导致PostBack事件。但我发现用户可以在按钮和崩溃应用程序中多次单击。我想要在第一次点击时禁用所有按钮,直到回复将被处理并且UpdatePanel的新内容到达。
我尝试将(通过jquery)绑定到按钮的“click”事件,设置'disabled;属性并在父表单上调用'submit'。不幸的是,这种方法似乎不起作用 - UpdatePanel的内容仍旧。
之后我试图覆盖'submit'事件,但面临另一个问题 - 如果我每次来到我的处理程序,如何再次提交表单?它可以通过引入标志变量来修复,但我不喜欢它 - 另一个变量只是增加代码熵。
也许我可以用ASP.NET方法以某种方式做到这一点?
答案 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>