带有 ASP.NET 回发的 jQuery 模态对话框

Posted

技术标签:

【中文标题】带有 ASP.NET 回发的 jQuery 模态对话框【英文标题】:jQuery modal dialog with postbacks in ASP.NET 【发布时间】:2013-01-16 05:03:54 【问题描述】:

我刚刚将我的 jQuery/jQuery UI 升级到最新版本(jQuery 1.9.0、jQuery UI 1.10.0),它似乎破坏了我的一些 jQuery UI 对话框功能。

为了在 ASP.NET 中的 jQuery UI 对话框中进行回发,有一个非常常见的解决方法,您必须将 DIV 重新附加到主 FORM,因为 jQuery 会在 FORM 之外重新构建 DIV ,就像这样:

$("#newInsurance").dialog(
    autoOpen: false,
    modal: true,
    open: function (type, data) 
        $(this).parent().appendTo($("form:first"));
    
);

不幸的是,自从升级后,现在将对话框置于灰色/禁用的背景覆盖层后面。所以Popup中的表格无法使用,全部变灰。我已经尝试了几件事,但我似乎无法让它工作 - 似乎这种旧的解决方法不再有效。有谁知道可行的新解决方法?还是我错过了什么?在我升级之前,这一直很好。

以下是有关使用的解决方法的更多信息:

堆栈溢出问题jQuery UI Dialog(Modal), prevents any postback

堆栈溢出问题$(“#dialog”).parent().appendTo($(“form:first”));

堆栈溢出问题jQuery modal form dialog postback problems

我使用 Internet Explorer 9 和 Google Chrome 24.x 对此进行了测试

According to the jQuery UI website,Dialog API 在 jQuery UI 1.10.0 中已经完全重新设计:

【问题讨论】:

【参考方案1】:

好的,所以这似乎是 jQuery UI v1.10 的修复:

$("#newInsurance").dialog(
    autoOpen: false,
    appendTo: "form",
    modal: true
).parent().css('z-index', '1005');

在 jQuery UI v1.10 中,他们添加了一个 appendTo 属性,这似乎与调用 .parent().appendTo($("form")) 完全相同。修复的诀窍是 z-index。

【讨论】:

谢谢。无论如何,我的工作没有 .parent.css(...) 位(jQuery UI - v1.10.2) 这行得通!但这是应该按照 Jquery 团队处理的方式吗?它确实看起来像一个黑客 我真的不确定。在尝试一些有效的方法之前,我与这个斗争了很长一段时间并四处寻找。现在可能有更多可用的信息,但是当我最近在 JUI 1.10 发布之后实现它时,我找不到任何东西。 简单解释一下,这个问题的发生是因为在创建对话框时对象被移到了 ASP.NET 表单之外,如果您使用的是更新面板,您应该追加到更新面板。类似于 appendTo: "#" 完美。这让我免于撕掉我剩下的头发。

以上是关于带有 ASP.NET 回发的 jQuery 模态对话框的主要内容,如果未能解决你的问题,请参考以下文章

如何使用带有 asp.net 的 jQuery 进行 onclientclick 回发

ASP SqlDataSource 更新 - 用于部分页面回发的 AJAX?

通过调用 ASP.NET 按钮单击从 jQuery 模态对话框回发

关闭子模态窗体后父页回发的问题

重置会话超时而不在 ASP.Net 中进行回发

在没有回发的情况下重置 ASP.NET 中的页面