• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Asp.net保持页面滚动条位置(页面提交后不变)
    一般来说很多的人在控制浏览器滚动条都是用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通过Ajax UpdatePanel回传后滚动条位置变更解决方法
    • 解决ASP.NET回传后div滚动条位置复位的问题(利用隐藏控件原理)
    • ASP.Net刷新页面后自动滚动到原来位置方法汇总
    上一篇:ASP.NET笔记之广告控件的使用方法
    下一篇:.net中的session与cookies区别及使用方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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