`
beckshanling
  • 浏览: 255733 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

解析 Page.MaintainScrollPositionOnPostBack 属性

    博客分类:
  • .net
阅读更多

ASP.NET 的页面执行 PostBack 动作时,页面由伺服端重新传给客户端,而页面的垂直滚动条会跳回最上方,水平滚动条会跳回最左方。
为了解决此情形,只要将
Page MaintainScrollPositionOnPostBack 属性设为 True 时,页面就会自动维护滚动条位置,它是如何实现这个动作的呢?

当把 Page.MaintainScrollPositionOnPostBack = "True" 时,检视 HTML 原始码,可以发现它多了 "__SCROLLPOSITIONX" "__SCROLLPOSITIONY" 这二个 HiddenField,这二个 HiddenField 主要是要来记录页面滚动条的水平及垂直位置。

     < input type ="hidden" name ="__SCROLLPOSITIONX" id ="__SCROLLPOSITIONX" value ="0" />
    
< input type ="hidden" name ="__SCROLLPOSITIONY" id ="__SCROLLPOSITIONY" value ="204" />


页面上也会多了以下这些
JavaScript 程序代码,它主要是透过 WebForm_SaveScrollPositionSubmit WebForm_RestoreScrollPosition 这二个函式来维护页面滚动条位置。

1 < script type = " text/javascript " >
2 <!--
3 theForm.oldSubmit = theForm.submit;
4 theForm.submit = WebForm_SaveScrollPositionSubmit;
5
6 theForm.oldOnSubmit = theForm.onsubmit;
7 theForm.onsubmit = WebForm_SaveScrollPositionOnSubmit;
8
9 theForm.oldOnLoad = window.onload;
10 window.onload = WebForm_RestoreScrollPosition;
11 // -->
12 < / script>


当页面 Submit 时会利用 WebForm_SaveScrollPositionSubmit 函式来记录页面目前的水平及垂直滚动条位置,将水平滚动条位置记录于 "__SCROLLPOSITIONX" 这个 HiddenField,垂直滚动条位置记录于 "__SCROLLPOSITIONY" 这个 HiddenField

PostBack 后页面重新加载后,会利用 WebForm_RestoreScrollPosition 函式来回复页面滚动条位置,也就是将记录在 "__SCROLLPOSITIONX" "__SCROLLPOSITIONY" 这二个 HiddenField 的值,重新设定页面的水平及垂直滚动条位置,如此就达到维护页面滚动条位置的动作了。

分享到:
评论

相关推荐

    ASP.net中保持页面中滚动条状态的代码

    针对这个问题我在网上找了好多,...Page Language=”C#” AutoEventWireup=”true” CodeBehind=”Default.aspx.cs” MaintainScrollPositionOnPostback=”true” Inherits=”Default.Default” %&gt; 在html原页面顶部将...

    asp.net页面触发事件panel滚动条高度不变的实现方法

    对于页面触发一个事件后,panel滚动条重新回到顶端,做下面的工作每次都要往下拉一下,特别是选择TreeView的时候,这个问题非常头疼,受到this.MaintainScrollPositionOnPostBack = true;的启示有感而发。 原理是在...

    ASP.Net刷新页面后自动滚动到原来位置方法汇总

    1.设置Page中的MaintainScrollPositionOnPostback属性为true  A&gt;.页面里有MaintainScrollPositionOnPostback,默认是false,设为true即可(页面级) 代码如下: &lt;&#37;@ Page Language=”C#” AutoEventWireup=”...

    一个可以保存客户端DOM状态的控件 CeellScriptManager

    一个可以保存客户端DOM状态的控件 ...注意:使用该控件不可以再设置page的MaintainScrollPositionOnPostback=true或者 MaintainScrollPositionOnSubmit=true属性 因为该控件就是用了这两个属性实现原理并将其扩展

    C#开发经验技巧宝典

    0435 属性MaintainScrollPositionOnPostBack实现网页定位 238 0436 自动隐藏式菜单 238 0437 关闭弹出窗口刷新父窗口 239 0438 弹出网页模式对话框 240 0439 弹出全屏显示网页 241 0440 为什么要生成静态...

    关于HTML中的滚动条使用技巧分享

    其实办法很简单,只需要在.aspx的源码中的顶端部分加上 MaintainScrollPositionOnPostback ="true"即可。见下图: 以上这个现象就是在学习牛腩新闻发布系统的时候遇到的,下面就给大家来分享一些其他关于html滚动条的...

    C#编程经验技巧宝典

    C#编程经验技巧宝典源代码,目录如下: 第1章 开发环境 1 &lt;br&gt;1.1 Visual Studio开发环境安装与配置 2 &lt;br&gt;0001 安装Visual Studio 2005开发环境须知 2 &lt;br&gt;0002 配置合适的Visual Studio 2005...

Global site tag (gtag.js) - Google Analytics