針對這個問題我在網上找了好多,發現答案比較亂。其實Asp.net中page對象就有一個屬性可以使頁面提交或者更新資料後,返回頁面原來位置,包括捲軸位置都可以儲存。
複製代碼 代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.asp教程x.cs" MaintainScrollPositionOnPostback="true"
Inherits="Default.Default" %>
在html原頁面頂部將MaintainScrollPositionOnPostback屬性設定為true就OK了;
除頁面捲軸的方法
今天做站的時候客戶要求實現網站全屏,使用JavaScript:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script language="網頁特效">
<!--
function fullscreen(){
window.open("/index.htm","","scrollbars=0,toolbar=0,location=0,fullscreen=1,directories=0,status=0,menubar=0,resizable=0");
}
// -->
</script>
</head>
<body>
<h3 align="center"><a href="j avascript:fullscreen()">開啟</a></h3>
</body>
</html>
可是,即使scrollbars值為0,在全屏的時候仍然會出現捲軸,後來發現,要完全取消捲軸,還需要在CSS裡面加上:
overflow:hidden;
有網友說可以在Body裡面加上scroll=no實現,例如
<body scroll=no></body>
asp.net教程頁面重新整理後的捲軸位置不變
利用MaintainScrollPositionOnPostback屬性
考慮到一個很長的頁面,如果每次POSTBACK之後,那個IE的捲軸可能都會回到最開始的地方(最上面),而不會保留其原先已經有的位置,這樣使用者會比較麻煩,又要把捲軸移動到原來的地方,在asp.net 2.0中,可以設定MaintainScrollPositionOnPostback屬性為TRUE即可,即
<%@ Page Language="VB" AutoEventWireup="false" MaintainScrollPositionOnPostback="true" CodeFile="MaintainScrollPosition.aspx.vb" Inherits="MaintainScrollPosition" %>
在asp.net中,postback非常常用。最近發現一個小技巧,可以在postback後保持捲軸的位置。
非常簡單。在<%@ Page %>中加入一個屬性:
SmartNavigation="true"
這樣在IE中可以做到保持捲軸位置,並且頁面不會閃。
如果還要Firfox支援,則可以在Page_Load()中加入:
Page.MaintainScrollPositionOnPostBack = true;
這個屬性是.Net2.0的,我把2個方法同時使用,經測試可以滿足要求。
只需在asp.net頁面的Page指令中設定MaintainScrollPositionOnPostback="true"就可以輕鬆實現。
MaintainScrollPositionOnPostback屬性的預設值為false。