Asp.net保持页面滚动条位置(页面提交后不变)
2013-04-07 00:00
681 查看
一般来说很多的人在控制浏览器滚动条都是用Page.SmartNavigation = False,对于页面中DIV等等的滚动条控制,我在看了别人代码后,写了一个,仅供参考:
J***ASCRIPT:
在页面后台调用的时候,写下如下的代码:
不好意思,这两个SUB可以写成一个,仅供参考。
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
J***ASCRIPT:
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 在刷新或提交页面后保持滚动条的位置
- asp.net 滚动条位置保持不变
- asp.net页面刷新或者回发后DIV的滚动条位置不变!(已解决)
- Asp.net数据回传之后页面保持滚动条位置
- asp.net 滚动条位置保持不变
- 页面刷新/回传后页面保持滚动条位置 asp.net / JS
- ASP.NET中页面回传后保持滚动条的位置
- asp.net 滚动条位置保持不变
- 在asp.net页面刷新之后,保持滚动条位置的方法!
- 刷新后保持页面滚动条位置(ASP.NET VS Javascript)
- Asp.net_保持页面滚动条位置
- asp.net页面刷新后的滚动条位置不变
- asp.net页面保持滚动条的位置
- asp.net页面刷新后的滚动条位置不变
- ASP.NET 2.0PostBack后保持页面滚动条的位置
- asp.net页面刷新或者回发后DIV的滚动条位置不变!(转)
- ASP.NET 2.0 PostBack请求后保持页面滚动条的位置