Asp.net jQuery对话框,UpdatePanel,RegisterStartupScript,带有Show:';盲人';缺陷
使用带有UpdatePanel的ASP.NET Web表单,使用带有Asp.net jQuery对话框,UpdatePanel,RegisterStartupScript,带有Show:';盲人';缺陷,asp.net,jquery,webforms,updatepanel,jquery-ui-dialog,Asp.net,Jquery,Webforms,Updatepanel,Jquery Ui Dialog,使用带有UpdatePanel的ASP.NET Web表单,使用带有的jQueryUI对话框和带有的show:“blind”效果,但我遇到了一个问题,即jQuery将对话框移到表单之外,阻止ASPNET控件发回服务器。因此,我使用了,即通过将其添加到对话框init: open: function (type, data) { $(this).parent().appendTo("form"); }, 但是,这似乎会导致一个错误,对话框在定位之前会加载到页面的一角(点击该页面上的“run
的jQueryUI对话框和带有的show:“blind”
效果,但我遇到了一个问题,即jQuery将对话框移到表单之外,阻止ASPNET控件发回服务器。因此,我使用了,即通过将其添加到对话框init:
open: function (type, data) {
$(this).parent().appendTo("form");
},
但是,这似乎会导致一个错误,对话框在定位之前会加载到页面的一角(点击该页面上的“run”以查看对话框的重新加载)。我可以通过从对话框中删除盲区效果来解决此问题:
show: 'blind',
删除盲区效果将删除角点问题中出现的此项。然而,我喜欢我的盲目效果。有没有办法让它与UpdatePanel和这个ASP.NET Web表单appendTo()
hack配合使用
编辑:
将$(this).parent().appendTo(“form”)
命令移动到pageLoad时发生一次,而不是每次打开对话框时,确实可以解决此问题。但是,如果使用来自代码隐藏的命令打开对话框,如以下所示,div
再次跳出表单
:
ScriptManager.RegisterStartupScript(Me, Me.GetType, "Show", "showDialog();", True)
此时,它看起来像是一个带有RegisterStartupScript
的bug!是否有一种从代码后面注入JavaScript的变通方法,它不会移动对话框的div
?在这种情况下,我运行服务器端代码来决定是否显示对话框,因此我不能只使用jQuery的。单击()
将对话框绑定到按钮。它需要基于代码隐藏计算的条件。Take
$(this).parent().appendTo("form");
然后像这样放置
$(function() {
var dlg = $("#messageSentDialog").dialog({
bgiframe: true,
autoOpen: false,
draggable: false,
resizable: false,
modal: true,
show: 'blind',
buttons: {
Ok: function() {
$(this).dialog('close');
}
}
});
dlg.parent().appendTo("form");
});
function showMessageSentDialog() {
$("#messageSentDialog").dialog("open");
}
$(function() {
showMessageSentDialog();
});
你的帖子真的把我弄糊涂了,因为我已经试过了。然而,我现在已经指出了问题所在。尽管这在JSFIDLE上有效,但在我的应用程序中不起作用,因为我正在通过ASP.NET的RegisterStartupScript注入.dialog()调用,这会将div移回表单之外。查看我的编辑。什么是showDialog();功能?这与showMessageSentDialog()相同吗;功能?