【问题标题】:Maintaining Scroll Position and Selected Control on Postback在回发时保持滚动位置和选定的控制
【发布时间】:2012-01-16 12:30:05
【问题描述】:

返回另一个基于网络的问题。

当控件向服务器发出回发时,页面会刷新(正常)。该页面还会滚动回顶部并失去选中的控件。如果在回发后它是相关的,取决于发生了什么变化,控件将变为可见或隐藏。即使页面可见性没有任何改变,焦点也会丢失并且当前滚动重置。在文本字段中输入的数据被保留,任何单选按钮/复选框选择也是如此。问题是选项卡被重置为索引 0 并且页面滚动被发送回页面顶部。

我正在使用 .Net 4.0

我尝试在 asp 页面本身和 web.config 中都添加 MaintainScrollPositionOnPostback="true" 无济于事。 当文本框文本更改或单选按钮更改并且回发仍然导致滚动和索引丢失时,我已经尝试使用和不使用 Ajax 更新面板使用条件更新触发。

任何想法都会很棒。哒!

【问题讨论】:

    标签: c# asp.net postback


    【解决方案1】:

    首先,MaintainScrollPositionOnPostback="true" 在 asp.net 2.0 中有一个已知错误,请参阅here

    另外,正确的语法是maintainScrollPositionOnPostback。 (小写 m)

    我用了maintainScrollPositionOnPostback,但是在IE中出现了很多问题,然后我使用了asp.net AJAX Control Toolkit UpdatePanel,它解决了问题(页面不滚动到顶部)并节省了一些带宽。

    编辑:

    我想我理解你的问题,它保持对元素的关注,可以使用一些 javascripts 解决方法来完成,se here

    希望对您有所帮助。

    【讨论】:

    • 您好,感谢您的回答。我刚刚编辑了我的问题,我应该早点发布。我在 Ajax updatePanel 和没有 updatePanel 的情况下都尝试过,两者都给出了相同的症状。我也在使用.Net 4.0。我刚刚尝试按照您的建议将 M 替换为 m,但滚动仍然发生。
    • 我已按照这些步骤操作。这正是我所需要的。向你致敬!
    • 我知道这是一篇旧帖子,但应该注意的是,IntelliSense 说“MaintainScrollPositionOnPostback”大写“M”是正确的拼写。
    • 我必须从后面的代码中删除“element.Focus()”。我已将元素设置为 .Focus() 并且似乎覆盖了 MaintainScrollPosition。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 2010-11-08
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多