asp.net - 优雅的 WebForms、AJAX 和提示弹出窗口

标签 asp.net javascript asp.net-ajax webforms

我已经开发了一个网站,其中包含大量 updatePanel、按钮和集成功能。
我必须添加一些确认提示,这些提示应该是自定义的,并且有“继续”、“取消”等选项。
这是一种可能的情况:

  • 用户在一个文本框中写入一些内容,然后单击提交按钮。
  • 出现提示。
  • 当用户单击“继续”时,页面应继续正常流程,而当按“取消”时,应停止提交操作。

我希望尽可能不那么突兀,实现这一目标的最佳方法是什么?

编辑:

我无法使用任何像 Jquery 这样的库。我可以使用 ModalPopupExtenders,或者简单的样式 div。
从根本上来说,问题是当单击此提交按钮时,即使我在 onclick 事件中添加 JS 函数,也会执行提交操作,但我的弹出窗口不会出现。
我可以 ClearAll 提交按钮处理程序,添加显示弹出窗口的按钮处理程序,但是当单击弹出窗口的“继续”按钮时,如何继续执行“提交”操作?

最佳答案

编辑:回答您的更新问题:

  • Hook 表单的 submit 事件,触发弹出窗口,并返回 false(如果使用 DOM0 或 jQuery 处理程序),或者调用 preventDefault(如果使用现代处理程序)。
  • 当您准备好真正提交表单时,请调用表单的 submit 函数。这不会在一致的浏览器上触发 submit 事件(显然,请使用所有目标浏览器进行测试)

原答案:

Zoidberg 指出了一种具体的实现(据我所知,这是一个很好的实现)。还有其他几个。

一般原理是这样的:

  • 创建一个绝对定位的iframe,覆盖页面上的所有内容;如果您愿意,您可以使用 iframe 上的不透明度将其覆盖的所有内容“灰显”。 iframe 不必包含任何内容,它只是作为背景。这通常称为“iframe shim”技巧。为 iframe 指定高于页面上任何其他元素的 z 索引。
  • iframe 顶部(z 顺序较高)创建一个绝对定位的 div,其中包含对话框和用户拥有的选项。请注意,这不在 iframe 的文档中,它是主页 DOM 的一部分。
  • 当用户选择一个选项后,删除您的 diviframe 并执行您需要执行的任何其他操作(转到另一个页面、更新内容等) .

iframe 至少有几个用途:

  • 它可以让您轻松地将底层内容变灰
  • 它吃鼠标点击
  • 它处理 Internet Explorer 上表单字段的问题

编辑:郑重声明,大多数 JavaScript UI 工具包都提供这种“模式”功能,包括 jQuery UI、YUI、Dojo、Glow...

关于asp.net - 优雅的 WebForms、AJAX 和提示弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1373607/

相关文章:

c# - 如何使用每个 C# 智能技术将项目从其他列表添加到列表中

javascript - 如何在 Google Chrome 扩展中获取 Node.js 进程的调试目标信息?

ASP.NET : exclude control in updatepanel from doing async postback

javascript - 更新面板后 JS 被重置

c# - 按钮事件不会在 FileUpload 的更新面板内触发

C# 动态创建的 LinkBut​​ton 命令事件处理程序

asp.net - ASP.NET 中的 Session 中真正存储了什么?

c# - 如何在 Crystal 报表C#中添加行号

javascript - Node/ react 如何返回用 react 渲染的纯html并发送给客户端

javascript - 如何水平居中比手机屏幕宽的div?