我正在尝试设置一个包含asp.net gridview的div。 我正在使用javascript代码。 div是asp.net buttonclick事件的弹出窗口。
我有以下代码:
function ViewPopup() {
document.getElementById('PopupDiv').style.visibility = 'visible';
document.getElementById('PopupDiv').style.display = '';
var screenHeight = document.documentElement.clientHeight;
var elementHeight = document.getElementById('PopupDiv').clientHeight;
if (screenHeight > elementHeight) {
document.getElementById('PopupDiv').style.top = ((screenHeight - elementHeight) / 2) + 50 +'px';
}
else {
document.getElementById('PopupDiv').style.top = '10px';
document.getElementById('PopupDiv').style.bottom = '20px';
document.getElementById('PopupDiv').style.overflow = 'scroll';
}
var scrWidth = document.documentElement.clientWidth;
var elWidth = document.getElementById('PopupDiv').clientWidth;
document.getElementById('PopupDiv').style.left = ((scrWidth - elWidth) / 2) - 20 + 'px';
document.getElementById('MaskedDiv').style.display = '';
document.getElementById('MaskedDiv').style.visibility = 'visible';
}
问题是..当屏幕高度< elementheight,控件转到else语句和弹出窗口 用滚动条显示。想象一下,弹出窗口的尺寸是x和y。
下次点击按钮时,如果是屏幕高度> elementheight,控件转到if语句, 但弹出尺寸又是x和y。也就是说,尺寸是从早期的按钮单击事件中获取的。 有什么方法可以确保弹出窗口完美地适合gridview吗?
答案 0 :(得分:0)
您是否尝试在var,var和if行上添加断点?然后慢慢踩过代码?我很好奇,如果“放慢”JavaScript,可以获得正确的元素高度和屏幕高度。这不是一个很好的答案,但我遇到了类似的情况,我不得不通过在其上放置一个计时器来减慢代码,以便它可以获得我的元素的正确尺寸,然后在事后继续我的if语句。我会展示代码,但那是前雇主......
我希望在某种程度上这会有所帮助。