c# - 在更新面板的列表框中保持滚动位置,而不是页面

标签 c# asp.net listbox

我在更新面板中有一个列表框。当我向下滚动并选择一个项目时,它会滚动回列表框的顶部。我听说 dom 不会跟踪回传中的滚动位置。有没有人有关于如何解决这个问题的解决方案/示例?

谢谢, 赛软

最佳答案

你遇到这个问题是因为 UpdatePanel完全取代你滚动的 <select>异步请求返回时使用新元素。

可能的解决方案:

  1. 使用 JavaScript 存储 scrollTop <select> 的属性(property)UpdatePanel 之前的隐藏表单元素中的元素已提交(通过调用 ClientScriptManager.RegisterOnSubmitStatement 方法),然后将其设置在新的 <select> 上当 AJAX 调用返回时。这将是乏味的、容易出错的,并且可能不太兼容(参见 here )。

  2. 使用 JavaScript 存储 <select>selectedIndex属性并在 AJAX 调用返回时重新选择该项目。显然,如果用户尚未选择任何内容,这将不起作用。

  3. Don't use UpdatePanel s 。尝试 jQuery + ASP.NET page methods相反。

关于c# - 在更新面板的列表框中保持滚动位置,而不是页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543131/

相关文章:

C# 将一个列表的值除以另一个列表的值以生成一个新列表

c# - 将 ListView 绑定(bind)到 ObservableCollection 和 Linq

c# - 使用 itextsharp c# 在现有 PDF 上绘制圆圈

javascript - 如何将 eval(ID) 从 ListView 传递到 asp.net 上的模式弹出窗口

listbox - 需要访问多个(可能)所选选项

asp.net - 如何禁用列表框的点击事件

c# - 自定义 DelegatingHandler 在 await base.SendAsync 之后永远不会返回

c# - 如何通过 rest api 更新问题状态?

c# - anchor href 中的评估

asp.net - 我可以在 asp :Chart control using asp. 网络上处理点击事件吗?