C# 通过客户端脚本显示时,正确调整ModalPopupXtender的大小
在我的ASP.NET Web表单页面中,我有一个由JavaScript显示的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
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)。