小编Joe*_*and的帖子

如何避免在AutoPostBack上滚动UpdatePanel?

我在updatepanel中有一个ASP.NET FormView.我通过为FormView中的每个项目设置AutoPostBack = true来自动保存表单.

这意味着用户可以快速连续点击几个元素,几乎同时触发几个异步回发.

我遇到的问题是,当异步回发尚未完成时,用户可以继续向下滚动表单.浏览器总是滚动回到第一次回发时的位置.

Page.MaintainScrollPositionOnPostback设置为False.

我在ajax和jquery中尝试了各种各样的事情:

  • 页面加载
  • add_initializeRequest
  • add_endRequest
  • 的document.ready
  • 等等..

但我似乎总是只能访问第一个回发时的滚动Y.

有没有办法在回发完成时检索当前滚动Y,所以我可以停止滚动发生?或者也许可以禁用滚动行为?

谢谢!


更新

感谢@chprpipr,我能够让它发挥作用.这是我的缩写解决方案:

var FormScrollerProto = function () {
    var Me = this;
    this.lastScrollPos = 0;
    var myLogger;

    this.Setup = function (logger) {
        myLogger = logger;
        // Bind a function to the window
        $(window).bind("scroll", function () {
            // Record the scroll position
            Me.lastScrollPos = Me.GetScrollTop();
            myLogger.Log("last: " + Me.lastScrollPos);
        });
    }

    this.ScrollForm = function () {
        // Apply the last scroll position
        $(window).scrollTop(Me.lastScrollPos);
    }

    // …
Run Code Online (Sandbox Code Playgroud)

asp.net scroll updatepanel autopostback

10
推荐指数
1
解决办法
9054
查看次数

标签 统计

asp.net ×1

autopostback ×1

scroll ×1

updatepanel ×1