javascript - 如何在嵌套主控中的 asp.net 异步回发后维护滚动位置?

标签 javascript jquery asp.net master-pages browser-scrollbars

我有一个带有嵌套母版的子页面,这意味着 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/

相关文章:

javascript - 理解 this 的用法,而不是 $.extend 中的空对象

javascript - jQuery Flot Chart 为每个系列添加标签

javascript - 在 JavaScript 中定义函数之前在回调中调用函数?

.net - ASP.NET MVC - 获取 QueryString 值

javascript - 如何使用 angularjs 从大数据库中正确搜索数据

javascript - PHP 和 JQuery - PHP json_encoded 2D 数组未到达 JQuery Ajax

javascript - 如何计算 Javascript 中两个 'HHmm' 之间的小时数?

javascript - jquery,实时 "title"属性变化

c# - Monodevelop 中的 MySQL ASP.NET MVC

c# - 获取 'unable to start debugging' 'An authentication error occurred while...'