页面回发后在 Div 上保持滚动条位置 (ASP.NET)

新手上路,请多包涵

我有一个这样的 div:

 <div style="overflow-y: scroll; height: 260px">

我包含几百条记录,并允许我选择一个项目来填充它下面的 formview 控件。

问题是当页面回发时,滚动条的位置回到了 div 的顶部。我想尝试保持其位置,以便所选记录仍然可见。

有任何想法吗?

原文由 Dkong 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 266
2 个回答

放置类似:

  <asp:HiddenField id="hdnScrollPos" runat="server"/> in your aspx.

然后,一些 javascript,如:

 var hdnScroll = document.getElementById(<%=hdnScrollPos.ClientID%>);
var bigDiv = document.getElementById('bigDiv');
bigDiv.onscroll = function() {
     hdnScroll.value = bigDiv.scrollTop;
}

window.onload = function () {
    bigDiv.scrollTop = hdnScroll.value;
}

原文由 FlySwat 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是 FlySwat 使用 JQuery 的解决方案的更完善的方法,它对我有用:

     var $ScrollPosition = $('#hfScrollPosition');
    var $ScrollingDiv = $('#pnlGroupDataContent');
    if ($ScrollPosition.length && $ScrollingDiv.length) {
        // Store scrolling value
        $ScrollingDiv.scroll(function () {
            $ScrollPosition.val($ScrollingDiv.scrollTop());
        });
        // Set scrolling
        $ScrollingDiv.scrollTop($ScrollPosition.val());
    }

原文由 LinkedWith 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题