单击对话框内的asp按钮时,如何防止关闭jQuery模式对话框?

Posted

技术标签:

【中文标题】单击对话框内的asp按钮时,如何防止关闭jQuery模式对话框?【英文标题】:How do I prevent closing of jQuery modal dialog when asp buttons inside dialog are clicked? 【发布时间】:2012-02-18 19:32:34 【问题描述】:

我正在尝试解决包含多个具有服务器端事件的 asp 控件的 jQuery UI 模式对话框的问题。每次单击对话框内的 asp 控件时,模式对话框都会关闭。这些 asp 控件确实具有服务器端逻辑,这些逻辑只是为了与模态交互而执行。

我已经包含了将对话框附加到表单的逻辑(见下文)。 appendTo 适用于我的解决方案中具有回发控件的其他对话框。

此模式的唯一区别是 Div 包含在用户控件中。

以下是用于打开对话框的脚本:

var $splitdialog;

// render html using web service, then GetSplitViewComplete will open the modal dialog

openDistributedReferenceCodesSplitModalDialog = function (splitdialogDivId, EntityType, EntityId, AllowAdd, AllowAdhoc) 
    $splitdialog = $("#" + splitdialogDivId);
    $splitdialog.empty();
    WebServices.DistributedReferenceCodesService.GetSplitView(EntityType, EntityId, AllowAdd, AllowAdhoc, GetSplitViewComplete);
;

GetSplitViewComplete = function (result) 
    // neccessary to support postback for button, dropdowns, etc on modal
    $splitdialog.append(result.InnerHtml);
    $splitdialog.dialog( width: 800 ,  height: 'auto' ,  modal: true );
    $splitdialog.parent().appendTo($("form:first"));
;

感谢您的建议。

【问题讨论】:

您能否提供更多有关与有效对话框的区别的详细信息。正在使用什么样的控件? ASP.NET 控件、Ajax 工具包控件、JQuery UI 控件? 与此对话框的不同之处在于,用于打开对话框的 div 位于用户控件中。用户控件在列表视图中重复。我通过将脚本附加到一个按钮来打开 jQuery 模态对话框,该按钮包含 div 作为模态打开的唯一 ID。谢谢。 很抱歉,这里无法为您提供帮助。只是没有足够的工作。当您将 ajax 行为与未经过 ajax 化的服务器控件混合时,总是很难找到这些问题。我不是说不能做,但我尽量避免这种情况。 【参考方案1】:

我认为您会想要使用 UpdatePanel 来防止模式弹出窗口关闭。试试这样的...

http://patelshailesh.com/index.php/why-does-modalpopup-close-on-postback

【讨论】:

感谢您提供的信息,但这并不能解决此问题。用于打开 jQuery 模式对话框的 div 存在于用户控件中。模态对话框中显示的内容是另一个通过 Web 服务呈现的用户控件。具有必须在模式关闭之前处理的服务器端事件的 asp 控件包含在更新面板中。

以上是关于单击对话框内的asp按钮时,如何防止关闭jQuery模式对话框?的主要内容,如果未能解决你的问题,请参考以下文章

当我单击搜索按钮时,防止 ProgressDialog 被关闭(Android)

单击asp按钮时如何防止回调调用? [复制]

如何在单击同一tr的td内的按钮时防止单击tr [重复]

防止对话框在按钮的单击事件处理程序中关闭

按钮单击时 JQuery 中的 ConfirmDialog() 自动关闭

单击行材料-ui DataGrid内的按钮时如何设置行数据?