asp.net 防止页面滚动的两个方法

asp.net|页面

一、
  private void RetainScrollPosition()
  {
   StringBuilder saveScrollPosition = new StringBuilder ();
   StringBuilder setScrollPosition = new StringBuilder ();

   RegisterHiddenField("__SCROLLPOS", "0");

   saveScrollPosition.Append("<script language='javascript'>");
   saveScrollPosition.Append("function saveScrollPosition() {");
   saveScrollPosition.Append("    document.forms[0].__SCROLLPOS.value = MyBody.scrollTop;");
   saveScrollPosition.Append("}");
   saveScrollPosition.Append("MyBody.onscroll=saveScrollPosition;");
   saveScrollPosition.Append("</script>");

   RegisterStartupScript("saveScroll", saveScrollPosition.ToString());

   if (Page.IsPostBack)
   {
    setScrollPosition.Append("<script language='javascript'>");
    setScrollPosition.Append("function setScrollPosition() {");
    setScrollPosition.Append("    MyBody.scrollTop = " + Request["__SCROLLPOS"] + ";");
    setScrollPosition.Append("}");
    setScrollPosition.Append("MyBody.onload=setScrollPosition;");
    setScrollPosition.Append("</script>");

    RegisterStartupScript("setScroll", setScrollPosition.ToString());
   }
  }

page_load 时,执行RetainScrollPosition()
页面html中,body加id=MyBody,即可这样一次添加,只要继承的页面都会实现你想要的了
(引用别人的,原作者我忘了,在此感谢)

二、

在你需要的位置添加一个对象控件,让页面刷新后定位到此控件的位置,使用了scrollIntoView方法。

 public void ScrollToObject(string str_Ctl_Name,Page page)
{
    if(!page.IsStartupScriptRegistered ("ScrollObject"))
   {
         page.RegisterStartupScript("msgScrollObject"," <script>document.forms(0)."+str_Ctl_Name+".scrollIntoView();document.forms(0)."+str_Ctl_Name+".focus(); </script>");
  }
}

注:ScrollToObject:方法名
        str_Ctl_Name:控件名

时间: 2024-11-27 14:51:34

asp.net 防止页面滚动的两个方法的相关文章

ASP.NET防止页面刷新的两种解决方法

 本篇文章主要是对ASP.NET防止页面刷新的两种解决方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 方法有二,总结如下:    第一方法:  直接在CS代码里敲:  Response.Buffer = true;  Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1);  Response.Expires = 0;  Response.CacheControl = "no-cache";    当有人想按

解决页面延迟的两个方法

玩网游游戏的朋友都知道,延迟是个很讨厌的东西,他会让你死了都不知道是怎么死的.做网站也是如此.下面介绍解决页面延迟的两个方法: 一. <% Response.Buffer = True %> <% ' Setup the variables necessary to accomplish the task Dim TimerStart, TimerEnd, TimerNow, TimerWait ' How many seconds do you want them to wait...

用PHP程序实现支持页面后退的两种方法

用PHP程序实现支持页面后退的两种方法 在开发过程中,往往因为表单出错而返回页面的时候填写的信息都不见了,为了支持页面回跳,可以通过两种方法实现. 第一,使用Header方法设置消息头Cache-control header('Cache-control: private, must-revalidate');  //支持页面回跳 第二,使用session_cache_limiter方法 //注意要写在session_start方法之前session_cache_limiter('private

asp.net简单页面控件赋值实现方法_实用技巧

本文实例讲述了asp.net简单页面控件赋值的方法.分享给大家供大家参考,具体如下: /// <summary> /// 赋值 表名,控件名,要查询的唯一数据 /// </summary> protected void SetEvaluate(string TableName, string UpName, string Id) { ContentPlaceHolder cph = (ContentPlaceHolder)Page.Master.FindControl("

javascript-在同一个页面 js中两个方法传值

问题描述 在同一个页面 js中两个方法传值 js方法A()是接收webbrowser传来的值 而方法B()是去获取 方法A()传来的值如何实现? 如何实现?尽量写出具体代码! 解决方案 不知道我的理解是否正确,希望能帮到你 var val; //定义一个公共变量 function A(var_fromweb){ val = var_fromweb; //把方法A想要传出的值赋给 val } function B(){ //这里就可以直接使用val了 } 解决方案二: function getVa

ASp.NET教程:页面传值的五种方法

ASP.NET跨页面传值技巧总结 关于页面传值的方法,引发了很多讨论.看来有很多人关注这个,我就我个人观点做了些总结,希望对大家有所帮助. 1.  使用QueryString变量 QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于传递数组或对象的话,就不能用这个方法了.下面是一个例子: a.aspx的C#代码 private void Button1_Click(object

两个JSP页面父页面获取子页面内容的两种方法

 需求说明:两个JSP页面,父页面需要子页面的内容,但子页面是隐藏的,具体来说,子页面是一系列的模板,父页面要通过id来获取这些模板,不愿意通过<include>方式导入,因为如果模板过多,就导致整个父页面太大,加载缓慢,以下两个方案,不知有没有解决这个问题. 1.通过ajax方式 实现过程:通过ajax请求到子页面中,子页面获取参数id使用java和js变量的交互后,返回需要的模板信息 缺点:把js变量转换成java变量比较麻烦,需要使用form表单来提交,而且jsp中的java脚本是在服务

让PHP支持页面回退的两种方法_php技巧

在开发过程中,往往因为表单出错而返回页面的时候填写的信息都不见了,为了支持页面回跳,可以通过两种方法实现. 第一,使用Header方法设置消息头Cache-control header('Cache-control: private, must-revalidate');  //支持页面回跳   第二,使用session_cache_limiter方法 //注意要写在session_start方法之前  session_cache_limiter('private, must-revalidat

两个JSP页面父页面获取子页面内容的两种方法_JSP编程

需求说明:两个JSP页面,父页面需要子页面的内容,但子页面是隐藏的,具体来说,子页面是一系列的模板,父页面要通过id来获取这些模板,不愿意通过<include>方式导入,因为如果模板过多,就导致整个父页面太大,加载缓慢,以下两个方案,不知有没有解决这个问题. 1.通过ajax方式 实现过程:通过ajax请求到子页面中,子页面获取参数id使用java和js变量的交互后,返回需要的模板信息 缺点:把js变量转换成java变量比较麻烦,需要使用form表单来提交,而且jsp中的java脚本是在服务器