【发布时间】:2012-07-05 18:03:12
【问题描述】:
我有一个有时响应缓慢的 Intranet ASP.NET 应用程序。我的要求是防止重复提交,并且最好向用户提供表单已经提交的反馈。
我发现的示例展示了如何禁用提交按钮,但这还不够,因为在我的应用中可能会发生提交:
- 来自提交按钮。
- 从任何具有 AutoPostBack = true 的控件(使用 javascript AFAIK 提交)。
- 从 UpdatePanel 中的上述任何一个 - 据我了解,在这种情况下,POST 是使用 AJAX 完成的,当 AJAX 调用完成时我需要重新启用。
我正在考虑显示一个覆盖/模式弹出窗口之类的东西,可能带有一个动画进度图像,该图像将在提交时显示。对于 UpdatePanel,在 AJAX 调用完成时隐藏。
有没有人有一个可以像上面那样轻松集成到 ASP.NET 页面中的示例?或者指出我需要挂钩哪些事件来显示/隐藏叠加层。
更新
@Aristos 的回答让我大部分时间都在那里。关键部分是处理 PageRequestManager.endRequest 以在 AJAX 调用完成时隐藏进度对话框。
在一种情况下我仍然遇到问题:如果提交按钮导致文件下载,我没有可以用来隐藏我的进度对话框的事件。 This question 有一个答案可以解决问题,我会试试看。
【问题讨论】:
标签: jquery asp.net double-submit-prevention