Asp.net保持页面滚动条位置(页面提交后不变)

 更新时间:2013年04月07日 16:47:30   作者:  
ASP.net:保持页面中滚动条的位置,使得页面提交后还在原来的位置,对于页面中DIV等等的滚动条控制,我在看了别人代码后,写了一个,感兴趣的朋友可以参考下哈
一般来说很多的人在控制浏览器滚动条都是用Page.SmartNavigation = False,对于页面中DIV等等的滚动条控制,我在看了别人代码后,写了一个,仅供参考:
复制代码 代码如下:

Public Shared Sub SaveDivScrollPosition(ByVal divIDArray As String, ByVal objPage As Page)
Dim saveScrollPosition As String
Dim i As Integer
Dim divID() As String
divID = divIDArray.Split(",")
For i = 0 To divID.Length - 1
objPage.RegisterHiddenField(divID(i) & "__SCROLLPOS", objPage.Request.Form(divID(i) & "__SCROLLPOS"))
saveScrollPosition = "<script language='javascript'>" _
& "function saveScrollPosition() {" _
& " if (document.all['" & divID(i) & "'] != undefined) {" _
& "document.forms[0]." & divID(i) & "__SCROLLPOS.value = " _
& "document.all['" & divID(i) & "'].scrollTop + ',' " _
& " + document.all['" & divID(i) & "'].scrollLeft;}}" _
& "if (document.all['" & divID(i) & "'] != undefined) {document.all['" & divID(i) & "'].onscroll=saveScrollPosition;}" _
& "</script>"
objPage.RegisterStartupScript("saveScroll" & divID(i), saveScrollPosition)
Next
End Sub

复制代码 代码如下:

Public Shared Sub RestoreDivScrollPosition(ByVal divIDArray As String, ByVal objPage As Page)
Dim restoreScrollPosition As String
Dim setPositionFunction As String
Dim i As Integer
Dim divID() As String
divID = divIDArray.Split(",")
For i = 0 To divID.Length - 1
setPositionFunction = setPositionFunction & "SetScrollPosition('" & divID(i) & "');"
Next
restoreScrollPosition = "<script language='javascript'>" _
& setPositionFunction _
& "</script>"
objPage.RegisterStartupScript("restoreScroll", restoreScrollPosition)
End Sub

JAVASCRIPT:
复制代码 代码如下:

function SetScrollPosition(divID){
var e;
var a;
var obj;
if (document.getElementById(divID)){
obj = eval('document.forms[0].' + divID + '__SCROLLPOS');
if (obj) {
e=eval('document.forms[0].' + divID + '__SCROLLPOS').value;
a=e.split(',');
document.getElementById(divID).scrollTop= a[0];
document.getElementById(divID).scrollLeft= a[1];
}
}
}

在页面后台调用的时候,写下如下的代码:
复制代码 代码如下:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
call SaveDivScrollPosition("div1,div2,div3",me)
call RestoreDivScrollPosition("div1,div2,div3",me)
End Sub

不好意思,这两个SUB可以写成一个,仅供参考。

相关文章

  • 如何使用ASP.NET制作简单的验证码

    如何使用ASP.NET制作简单的验证码

    当用户进行注册、登陆的时候都会遇到输入验证码的情况,那验证码到底是怎么产生的呐,本文就是介绍了如何使用ASP.NET制作简单的验证码,感兴趣的朋友可以参考一下
    2015-07-07
  • ASP.NET MVC自定义操作过滤器

    ASP.NET MVC自定义操作过滤器

    这篇文章介绍了ASP.NET MVC自定义操作过滤器的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • .NET中的字符串在内存中的存储方式

    .NET中的字符串在内存中的存储方式

    这篇文章主要介绍了.NET的字符串在内存中是如何存储的,今天来讨论下这个问题,对.NET字符串内存存储相关知识感兴趣的朋友跟随小编一起看看吧
    2023-07-07
  • 详解.net core下如何简单构建高可用服务集群

    详解.net core下如何简单构建高可用服务集群

    一说到集群服务相信对普通开发者来说肯定想到很复杂的事情,这篇文章主要介绍了详解.net core下如何简单构建高可用服务集群,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • asp.net下生成英文字符数字验证码的代码

    asp.net下生成英文字符数字验证码的代码

    用了asp.net随机数,获取指定位数的字母或数字以后,进行图片输出的验证码函数。
    2009-12-12
  • ASP.NetCore使用Swagger实战

    ASP.NetCore使用Swagger实战

    这篇文章主要介绍了ASP.NetCore使用Swagger实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • CorFlags.exe检查.NET程序平台目标(Platform Target)的工具

    CorFlags.exe检查.NET程序平台目标(Platform Target)的工具

    .NET Framework SDK中的一个工具程序: CorFlags.exe。CorFlags.exe不但可查询.NET组件的平台目标设定,甚至能直接修改设定,省去重新编译的工夫。
    2013-02-02
  • ASP.NET MVC5网站开发咨询管理的架构(十一)

    ASP.NET MVC5网站开发咨询管理的架构(十一)

    这篇文章主要介绍了ASP.NET MVC5网站开发咨询管理的架构,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-09-09
  • ASP.NET编程中经常用到的27个函数集

    ASP.NET编程中经常用到的27个函数集

    asp.net 整理的27个函数集,大家可以参考下
    2008-08-08
  • 理解ASP.NET Core 依赖注入(Dependency Injection)

    理解ASP.NET Core 依赖注入(Dependency Injection)

    把有依赖关系的类放到容器中,解析出这些类的实例,就是依赖注入。目的是实现类的解耦。本文主要介绍了ASP.NET Core 依赖注入(Dependency Injection),需要了解具体内容的可以仔细阅读这篇文章,希望对你有所帮助
    2021-09-09

最新评论