如何在autopostback上保持滚动位置?

如何在postback返回页面的相同位置。 似乎总是到达页面顶部。

我尝试过使用maintainScrollPositionOnPostBack = "true"

但它不起作用。

谢谢,山姆

我最近也在寻找这个。 想出了一大堆Javascript,直到找到以下内容:

在.aspx代码文件的顶部,插入以下内容:

  MaintainScrollPositionOnPostback="true" 

所以.aspx中的第一句开头

 <%@ Page Language="C#" MaintainScrollPositionOnPostback="true" AutoEventWireup="true" CodeBehind="Default.aspx.cs" 

这对我来说很好,无需添加任何其他代码来使用updatepanel保持滚动条位置

我用过几种方法来设置maintainScrollPositionOnPostBack。 你试过不止一个吗? 你能描述一下触发回发的内容以及你测试过的浏览器吗? 你在使用母版页吗?

  1. 你可以设置Page.MaintainScrollPositionOnPostBack = true; 在页面加载后面的代码中。
  2. 您可以将其添加到页面声明<%@ Page MaintainScrollPositionOnPostback="true" %>
  3. 您可以在Web配置文件添加它

当页面回发时,您可以将.Focus()设置到特定的服务器控件上。

您是否使用Google Chrome进行测试? 我遇到了同样的问题但是开始在IE和Firefox中进行测试并且它正在运行。 我不认为Chrome支持此属性。 它也可能是.NET Framework 3.5的问题。 它可能已在.NET 4.0中修复

如果你有一个特定的锚,你想移动到你可以做这里描述的事情 。 否则你将不得不使用javascript并找出你离顶部有多远,将其保存在隐藏字段或cookie中,并在页面加载后重置视图。

虽然bbbwex的回复是正确的,但实际上我花了一段时间才意识到需要将MaintainScrollPositionOnPostback =“true”放在两者上

  1. ASPX页面的顶部。

  2. 在IsPostBack中

它在我满足这两个条件后起作用。

  

ScriptManager标记中添加上面的代码,并在页面声明中添加MaintainScrollPositionOnPostback="true"