带有jQuery弹出对话框的ASP.NET:如何在对话框关闭时发回
各位 我在一个相当复杂的网站上工作。我们有一个更新面板,其中包含一些控件。单击其中一个控件时,将打开一个jQuery对话框 当对话框关闭时,我想通知更新面板更改其显示。为此,我需要发回更新面板 我知道这个对话框有一个方便的回调事件,你可以连接到它。但事情是这样的。操纵对话框的javascript都在一个单独的.js文件中。我想继续把它分开。因此,执行回发的代码要么在该.js文件中,要么作为参数注入到该.js文件中的某个方法中 我该怎么做?我将向.js文件方法传递什么带有jQuery弹出对话框的ASP.NET:如何在对话框关闭时发回,jquery,asp.net,updatepanel,jquery-ui-dialog,asynchronous-postback,Jquery,Asp.net,Updatepanel,Jquery Ui Dialog,Asynchronous Postback,各位 我在一个相当复杂的网站上工作。我们有一个更新面板,其中包含一些控件。单击其中一个控件时,将打开一个jQuery对话框 当对话框关闭时,我想通知更新面板更改其显示。为此,我需要发回更新面板 我知道这个对话框有一个方便的回调事件,你可以连接到它。但事情是这样的。操纵对话框的javascript都在一个单独的.js文件中。我想继续把它分开。因此,执行回发的代码要么在该.js文件中,要么作为参数注入到该.js文件中的某个方法中 我该怎么做?我将向.js文件方法传递什么 非常感谢 最近不得不解决这个
非常感谢 最近不得不解决这个问题。我有一个通用函数来帮助解决这个问题
- 将隐藏的
放入asp:button
或外部,并将其设置为UpdatePanel
AsyncPostBackTrigger
- 如果需要,从
调用js函数,传入隐藏的ItemDataBound
asp:按钮的
李>ClientID
- 一旦单击了“OK”按钮或您将
设置为的任何按钮,js函数将在传入的按钮上调用click事件李>buttonText
- 然后,如果按钮位于
内,您可以自动处理UpdatePanel
,或者在UpdatePanel.Update
但隐藏中调用
Update
- 一旦单击了“OK”按钮或您将
<asp:UpdatePanel runat="server" ID="UpdatePanel1">
<ContentTemplate>
<asp:button id="btnHidden" style="display:none" runat="server" onclick="btnHidden_Click"/>
</ContentTemplate>
</asp:UpdatePanel>
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');
}
您可以扩展js文件中的函数,从需要挂接的对话框中接收每个方法的回调函数;然后将这些函数连接起来,但首先检查它们:if(typeof(cbFncClose)==='function')cbFncClose();非常巧妙!非常感谢。一开始我并不喜欢只通过脚本点击的隐藏按钮,但我可以看到,考虑到发回和更新面板的复杂性,这可能是最可靠的解决方案。再次感谢!真是太棒了!最后我花了2天的时间才把它用上(通过摆弄和谷歌冲浪)。感谢您发布的有效回复代码。