快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

保持页面中滚动条的位置,使得页面提交后滚动条还是在原来的位置

一般来说很多的人在控制浏览器滚动条都是用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 OBJECT之:RESPONSE
下一教程: 用ASP进行BASE64加密

您可以阅读与"保持页面中滚动条的位置,使得页面提交后滚动条还是在原来的位置"相关的教程:
· 如何在WEB页面中集成文件上传功能
· ASP中检查没有数据提交的页面Ⅰ
· 较长TEXT型数据无法在ASP页面中取出的解决办法
· 页面自动刷新,又不用让用户按回车键来提交数据
· 在静态页面中显示文章被阅读的次数
    微笑服务 优质保证 索取样品