C# 通过客户端脚本显示时,正确调整ModalPopupXtender的大小

C# 通过客户端脚本显示时,正确调整ModalPopupXtender的大小,c#,javascript,webforms,C#,Javascript,Webforms,在我的ASP.NET Web表单页面中,我有一个由JavaScript显示的ModalPopupXtender: $.ajax({ // full ajax request shortened type: "POST", success: function (msg) { $("#profileTitleLabel").html(msg.d.TitleEncoded); $("#profileTextLabel").html(msg.d.B

在我的ASP.NET Web表单页面中,我有一个由JavaScript显示的
ModalPopupXtender

$.ajax({
    // full ajax request shortened
    type: "POST",
    success: function (msg) {
        $("#profileTitleLabel").html(msg.d.TitleEncoded);
        $("#profileTextLabel").html(msg.d.BodyEncoded);

        $find('profileTextModalPopupExtender').show();
    },
    error: function (jqXHR, textStatus, errorThrown) {
    }
});
第一次它既不居中,也不大小,但在随后的调用中它是好的(在Chrome、Firefox和IE9中)。我想这与关闭它时完成的回发有关(
UpdatePanel
partial update)

现在,如果不使用服务器端调用
Show
,如何手动触发大小调整以使其第一次调整到正确的大小?在
show
之前,我尝试调用
initialize
,并浏览了客户机对象的方法,但尚未找到解决方案

以下是与弹出窗口的
div
匹配的样式:

height: auto;    // matched css classes
width: auto;
max-height: 80%;
max-width: 90%;
min-width: 50%;
overflow: auto;
padding: 10px;
position: fixed; // element CSS
z-index: 100001;
left: 160.5px;
top: 157.5px;

我找到了使弹出窗口正确显示的解决方法:

$find('profileTextModalPopupExtender').show();
$find('profileTextModalPopupExtender')._layout();
$find('profileTextModalPopupExtender').show();

我同意这里面有代码的味道。然而,我找不到更好的解决方案(我仍然愿意接受建议)。我特别不喜欢
\u layout
被调用三次,一次由我自己调用,两次(一行!)由
show
调用。我找到了一种解决方法,可以使弹出窗口正确显示:

$find('profileTextModalPopupExtender').show();
$find('profileTextModalPopupExtender')._layout();
$find('profileTextModalPopupExtender').show();

我同意这里面有代码的味道。然而,我找不到更好的解决方案(我仍然愿意接受建议)。我特别不喜欢在所有浏览器中,
\u layout
被调用三次,一次由我自己调用,两次(连续!)由
show

调用?你能展示css吗?你什么时候以及如何展示它,你能展示完整的js吗?谢谢你,蒂姆。我添加了您需要的位和浏览器(Chrome、FF、IE9)。在所有浏览器中?你能展示css吗?你什么时候以及如何展示它,你能展示完整的js吗?谢谢你,蒂姆。我添加了您需要的位和浏览器(Chrome、FF、IE9)。