作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有嵌套母版的子页面,这意味着 2 个母版页相互继承,并且在该子页面中我仅拥有所有用户控件。
因此,就我而言,我必须在用户控件列表框异步回发后保持子页面的滚动位置。
我已经尝试过:
MaintainScrollPositionOnPostback="true"
带有in page指令和js代码
<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 = document.getElementById("<%=Panel1.ClientID %>").scrollLeft;
yPos = document.getElementById("<%=Panel1.ClientID %>").scrollTop;
}
function EndRequestHandler(sender, args) {
document.getElementById("<%=Panel1.ClientID %>").scrollLeft = xPos;
document.getElementById("<%=Panel1.ClientID %>").scrollTop = yPos;
}
</script>
对于面板、div 和更新面板..这些都完全失败,为什么因为如果子页面回发意味着相关母版页也回发..但我不知道如何维护滚动位置..
请尽快帮助我..
谢谢大家
最佳答案
假设我有一个
<asp:hiddenfield id="hid" runat="server"/>
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
xPos = document.getElementById("<%=Panel1.ClientID %>").scrollLeft;
yPos = document.getElementById("<%=Panel1.ClientID %>").scrollTop;
var h = document.getElementById("<%=hid.ClientID %>");
h.value = xPos.toString() + "_" + yPos.toString();
}
function EndRequestHandler(sender, args) {
var val = document.getElementById("<%=hid.ClientID %>").value.split('_');
xPos = parseFloat(val[0]);
yPos = parseFloat(val[1]);
document.getElementById("<%=Panel1.ClientID %>").scrollLeft = xPos;
document.getElementById("<%=Panel1.ClientID %>").scrollTop = yPos;
}
</ asp:hiddenfield>
谢谢
关于javascript - 如何在嵌套主控中的 asp.net 异步回发后维护滚动位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23341316/
我是一名优秀的程序员,十分优秀!