SimpleModal打破了ASP.Net Postbacks

tgh*_*ghw 25 javascript asp.net jquery postback simplemodal

我在ASP.Net项目中使用jQuerySimpleModal来为Web应用程序创建一些不错的对话框.不幸的是,模态对话框中的任何按钮都不能再执行回发,这是不可接受的.

我找到了一个解决方法的来源,但对于我的生活,我无法让它工作,主要是因为我没有完全理解所有必要的步骤.

我也有一个解决方法,即替换回发,但它很难看,可能不是最可靠的.我真的想让回发再次运作.有任何想法吗?

更新:我应该澄清,回发不起作用,因为用于执行回发的Javascript在某种程度上已经破坏,所以当点击按钮时根本没有任何反应.

tgh*_*ghw 33

你们两个都在正确的轨道上.我意识到SimpleModal将对话框附加到ASP.Net之外的主体<form>,它破坏了功能,因为它无法找到元素.

为了解决这个问题,我刚刚修改了SimpleModal源代码'form'而不是附加eveything 'body'.当我创建对话框时,我也使用该persist: true选项,以确保按钮保持打开和关闭.

谢谢大家的建议!

更新:版本1.3 appendTo在配置中添加了一个选项,用于指定应将模式对话框附加到哪个元素.这是文档.

  • 当我注意到我的.net验证控件在关闭并重新打开模态后没有触发时,使用`persist:true`帮助了我.你的答案解决了我的问题,非常感谢!:) (2认同)

d4n*_*4nt 6

所有标准的ASP.NET回发都可以通过在页面上调用__doPostBack javascript方法来工作.该函数提交表单(ASP.NET每页真的只喜欢一个表单),其中包含一些隐藏的输入字段,其中所有的viewstate和其他善良都存在.

从表面上看,我在SimpalModal中看不到任何会搞砸页面形式或任何标准隐藏输入的内容,除非该模式的内容恰好来自HTTP GET到ASP.NET页面.这将导致两个ASP.NET表单呈现为一个DOM,几乎肯定会搞砸__doPostBack函数.

您是否考虑过使用ASP.NET AJAX ModalPopup控件