当客户端脚本显示时,正确调整ModalPopupExtender的大小

Size ModalPopupExtender properly when shown by Client Script

本文关键字:ModalPopupExtender 调整 脚本 客户端 显示      更新时间:2023-09-26

在我的ASP.NET Web窗体页面中,我有一个由JavaScript:显示的ModalPopupExtender

$.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部分更新)。

现在,在不使用对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();

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

相关文章:
  • 没有找到相关文章