我在更新面板中有一个列表框。当我向下滚动并选择一个项目时,它会滚动回列表框的顶部。我听说 dom 不会跟踪回传中的滚动位置。有没有人有关于如何解决这个问题的解决方案/示例?
谢谢, 赛软
最佳答案
你遇到这个问题是因为 UpdatePanel
完全取代你滚动的 <select>
异步请求返回时使用新元素。
可能的解决方案:
使用 JavaScript 存储
scrollTop
<select>
的属性(property)UpdatePanel
之前的隐藏表单元素中的元素已提交(通过调用ClientScriptManager.RegisterOnSubmitStatement
方法),然后将其设置在新的<select>
上当 AJAX 调用返回时。这将是乏味的、容易出错的,并且可能不太兼容(参见 here )。使用 JavaScript 存储
<select>
的selectedIndex
属性并在 AJAX 调用返回时重新选择该项目。显然,如果用户尚未选择任何内容,这将不起作用。Don't use
UpdatePanel
s 强>。尝试 jQuery + ASP.NET page methods相反。
关于c# - 在更新面板的列表框中保持滚动位置,而不是页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543131/