我使用下面的代码在回发后检索内容页面内的面板和gridview的滚动位置。我也使用更新面板。下面的代码工作正常,但它会引发运行时javascript错误,例如" JavaScript运行时错误:无法获取属性' scrollLeft'未定义或空引用"在第7行,由于同一页面中的自动完成扩展程序无法正常运行。请帮我摆脱这个javascript错误,这样两个函数都能正常工作。提前谢谢..
`
<script type="text/javascript">
var xPos, yPos;
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
xPos = $get('ctl00_ContentPlaceHolder2_Panel1').scrollLeft;//line 7
yPos = $get('ctl00_ContentPlaceHolder2_Panel1').scrollTop;
}
function EndRequestHandler(sender, args) {
$get('ctl00_ContentPlaceHolder2_Panel1').scrollLeft = xPos;
$get('ctl00_ContentPlaceHolder2_Panel1').scrollTop = yPos;
}
</script>`
答案 0 :(得分:0)
你可以清楚地用JQuery标记这个,所以我假设你正在使用JQUERY。
你应该做这样的事情
xPos = $('#ctl00_ContentPlaceHolder2_Panel1').scrollLeft;
答案 1 :(得分:0)
感谢大家分享所有有价值的想法..
我在执行每个函数之前添加了一个验证,解决了我的问题。请在下面找到更新的代码;`
<script type="text/javascript">
var xPos, yPos;
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
if ($get('ctl00_ContentPlaceHolder2_Panel1') != null) {
xPos = $get('ctl00_ContentPlaceHolder2_Panel1').scrollLeft;
yPos = $get('ctl00_ContentPlaceHolder2_Panel1').scrollTop;
}
}
function EndRequestHandler(sender, args) {
if ($get('ctl00_ContentPlaceHolder2_Panel1') != null) {
$get('ctl00_ContentPlaceHolder2_Panel1').scrollLeft = xPos;
$get('ctl00_ContentPlaceHolder2_Panel1').scrollTop = yPos;
}
}
</script>