Asp.net jQuery对话框,UpdatePanel,RegisterStartupScript,带有Show:';盲人';缺陷

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

使用带有UpdatePanel的ASP.NET Web表单,使用带有
的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()相同吗;功能?