我在使用 ASP.NET 和更新面板时遇到一些问题。问题是,每次从更新面板发生部分回发时,页面都会滚动回顶部。在我的大多数页面上,这并不是一个大问题,但在某些页面上可能会变得很长。然后,当用户位于页面底部时,我显示 jQuery 弹出窗口RadListView
在其中,用户可以选择该列表中的元素。但是点击这个元素会导致部分回发,页面跳回顶部。
我浏览过互联网,找不到任何解决我的问题的方法。当然设置MaintainScrollPositionOnPostback
什么也没做。
有谁知道什么可以帮助我解决这个问题?
干杯,
帕科
有一个解决这个问题的方法,我很久以前就在 ERP 中使用过。不确定这是否是最好的解决方案,但它确实有效。
我不知道你使用的是自定义Page类还是默认的System.Web.UI.Page
一,但是,我会尝试向您解释如何做到这一点,然后您会找到在您的环境中实现它的最佳方法,好吗?
您将创建一个HiddenField
,例如 ID 为“hfScrollPosition”。
然后,您将创建一个 javascript 事件:document.onscroll
或类似的东西,并且在事件中您将更新隐藏字段以获取当前滚动位置。例如:document.getElementById("hfScrollPosition").value = document.documentElement.scrollTop;
这样做后,您将拥有一个 ASP.NET 控件,该控件根据主体滚动位置动态更新其值。因此,当页面中的某些控件进行回发时,您可以将以下 JavaScript 代码放入 Page_Load 事件中:
document.documentElement.scrollTop = document.getElementById("hfScrollPosition").value;
因此,每次页面回发时,正文滚动位置都会正确更新。
EDIT:我做了一个小提琴来模拟它:https://jsfiddle.net/j26fpgzo/ https://jsfiddle.net/j26fpgzo/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)