在asp.net 页面中,如果页面很长的话,那么默认在PostBack 之后,页面的位置会回到滚动条的最顶端。(当然如果使用ajax另论,这里不讨论ajax)
那么如何在 PostBack之后还是回到PostBack之前的位置了?
在Asp.net 1.1 之前,可以使用SmartNavigation ,但是在SmartNavigation经常的会产生很多的问题,如css 失效之类的(我自己的遇到的)
在asp.net 2.0 以后,我们很简单,可以使用MaintainScrollPositionOnPostback 这个page指令。
具体方法:
1: 在page 指令把MaintainScrollPositionOnPostback 设为true。
如:
<%@ Page MaintainScrollPositionOnPostback="true" %>
2: 在代码里面设置
protected void Page_Load(object sender, EventArgs e)
{
Page.MaintainScrollPositionOnPostBack = true;
}
3:在web.config 里面统一设置 ( 推荐使用这种方法,不用每个页面都设置一次)
<system.web>
<pages maintainScrollPositionOnPostBack="true"></pages>
</system.web>
在asp.net页面 PostBack以后,页面的滚动条会默认会滚到页面的最顶端。
在页面的 page 指令里面的,把MaintainScrollPositionOnPostback 属性设为true 页面回调的时候,还是会回到之前的页面。
如:
<%@ Page MaintainScrollPositionOnPostback="true" Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" Buffer="false" %>
MaintainScrollPositionOnPostback 属性 在C#高级编程里面,解释为:
带一个boolean值,表示在回送页面时,页面是位于相同的滚动位置上,还是在最高的位置上重新生成页面。