ASP.NET与jQuery弹出对话框:如何回发对话框关闭

伙计们,

我正在一个相当复杂的网站上工作。 我们有一个包含一些控件的更新面板。 单击其中一个控件时,将打开一个jQuery对话框。

当对话框关闭时,我想发信号通知更新面板以更改其显示。 为此,我需要回发到更新面板。

我知道对话框有一个方便的回调事件,你可以连接到。 但事情就是这样。 操纵对话框的javascript都在一个单独的.js文件中。 我想继续将它分开。 因此,回发的代码要么在.js文件中,要么作为参数注入到.js文件中的某个方法中。

我怎样才能做到这一点? 那么我将传递给.js文件方法?

非常感谢。

最近刚刚解决了这个问题。 我有一个通用的function来帮助解决这个问题。

  • UpdatePanel或外部放置一个隐藏的asp:button ,并将其设置为AsyncPostBackTrigger
  • 如果需要,从ItemDataBound调用js函数,传入隐藏的asp:buttonClientID
  • js函数将在“OK”或任何你设置的buttonTxt to,按钮被点击后调用传入的按钮上的click事件。
  • 然后,如果按钮位于UpdatePanel内,则可以自动处理UpdatePanel或者在butHidden_Click调用Update

标记:

      

脚本:

  function showjQueryUIDialogOkBtnCallback(buttonToClick, dialogSelector, buttonTxt, isModal, width, height) { var buttonOpts = {}; buttonOpts[buttonTxt] = function () { $("#" + buttonToClick).trigger('click'); }; buttonOpts['Cancel'] = function () { $(this).dialog("close"); $(this).dialog('destroy'); } $(dialogSelector).dialog({ resizable: false, height: height, width: width, modal: isModal, open: function (type, data) { $(this).parent().appendTo("form"); //won't postback unless within the form tag }, buttons: buttonOpts }); $(dialogSelector).dialog('open'); }