我有一个旧的 ASP.NET Web 表单应用程序 (.NET 2.0),该应用程序的进程在单击按钮时需要 30 秒左右的时间才能运行。我需要防止按钮被单击两次。这将防止发布两次,从而导致数据库中出现重复数据。
我尝试添加;
OnClientClick="this.disabled='true';"
尝试禁用 JavaScript 中的按钮。但是,尽管该按钮被禁用,但该按钮的回发不起作用。
禁用该按钮以防止多次提交是此应用程序的理想选择。我怎样才能做到这一点?
编辑
我无法使用第三方控件。
最佳答案
如果您只是禁用该按钮,则 ASP.NET 将不会发布该表单。您还想处理客户端验证。这是我的解决方案:
<asp:Button runat="server" ID="btnSave"
Text="Save" OnClick="btnSave_Click"
OnClientClick="if (!Page_ClientValidate()){ return false; } this.disabled = true; this.value = 'Saving...';"
UseSubmitBehavior="false" />
参见@Dave Ward's post有关 UseSubmitBehavior 的说明。
如果您有多个验证组,您需要为此增强此解决方案。
关于asp.net - 如何防止用户点击按钮两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6137172/