我在updatepanel中有一个ASP.NET FormView.我通过为FormView中的每个项目设置AutoPostBack = true来自动保存表单.
这意味着用户可以快速连续点击几个元素,几乎同时触发几个异步回发.
我遇到的问题是,当异步回发尚未完成时,用户可以继续向下滚动表单.浏览器总是滚动回到第一次回发时的位置.
Page.MaintainScrollPositionOnPostback设置为False.
我在ajax和jquery中尝试了各种各样的事情:
但我似乎总是只能访问第一个回发时的滚动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)