智能导航在网页的操做中起到很重要的作用,下面介绍了几种智能导航的方法:
智能导航的作用:
· 消除导航导致的闪烁。
· 从一页移动到另一页时保持滚动位置。
· 保持导航之间的元素焦点。
· 在浏览器的历史记录中只保留最后一页的状态。
智能导航最适用于需要频繁回发但是其可是内容在返回时不会发生显著更改的 ASP.NET 页。在决定是否将该属性设置为 true 时,请仔细考虑这一点。
1. Page.SmartNavigation 属性 参见 MSDN CHINA
2. 在页面上写JavaScript来控制页面的滚动.
下面是网上可以查到的一个RetainScrollPosition函数
Private Sub RetainScrollPosition()
Dim saveScrollPosition As New StringBuilder Dim setScrollPosition As New StringBuilder
RegisterHiddenField("__SCROLLPOS", "0")
saveScrollPosition.Append("<script language='javascript'>") saveScrollPosition.Append("function saveScrollPosition() {") saveScrollPosition.Append(" document.forms[0].__SCROLLPOS.value = thebody.scrollTop;") saveScrollPosition.Append("}") saveScrollPosition.Append("thebody.οnscrοll=saveScrollPosition;") saveScrollPosition.Append("</script>")
RegisterStartupScript("saveScroll", saveScrollPosition.ToString())
If (Page.IsPostBack = True) Then
setScrollPosition.Append("<script language='javascript'>") setScrollPosition.Append("function setScrollPosition() {") setScrollPosition.Append(" thebody.scrollTop = " & Request("__SCROLLPOS") & ";") setScrollPosition.Append("}") setScrollPosition.Append("thebody.οnlοad=setScrollPosition;") setScrollPosition.Append("</script>")
RegisterStartupScript("setScroll", setScrollPosition.ToString())
End If |
只要在Page_Load调用这个函数就可以了,而且在html中将body 的id命名为thebody。
在scottwater.com上面有篇Scroll Page,这篇文章建了一个类来完成智能导航的功能,你也可以引用这个类来完成你的网页定位.
在我的Blog上的关于Scroll Page的Code.