当客户端脚本显示时,正确调整ModalPopupExtender的大小
Size ModalPopupExtender properly when shown by Client Script
在我的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
调用。
相关文章:
- 没有找到相关文章