經(jīng) 再次搜索,發(fā)現(xiàn)有人用js腳本寫過這個(gè)方法(感謝寶玉提供的js)。js是在客戶端運(yùn)行的,只要我的aspx頁面能解析到客戶端,不都是html文件么, 從理論上說,用js的方法是可以實(shí)現(xiàn)的。于是馬上動(dòng)手試驗(yàn),結(jié)果,成功!雖然當(dāng)頁面內(nèi)容很多的時(shí)候有一個(gè)稍微明顯的閃動(dòng),但滾動(dòng)條可以保持在 PostBack前的位置,與需求相符,問題解決。
ps:另附j(luò)s腳本
--------------------------------------------------------------------------------
<script language="javascript">
<!--
// 獲取當(dāng)前文件名
function getFileName()
{
var url = this.location.href;
var pos = url.lastIndexOf("/");
if(pos == -1)
pos = url.lastIndexOf("\\");
var filename = url.substr(pos+1);
return filename;
}
function fnLoad()
{
with(window.document.body)
{
addBehavior ("#default#userData"); // 使得body元素可以支持userdate
load("scrollState" + getFileName()); // 獲取以前保存在userdate中的狀態(tài)
if (sFirstEnter=="0")
{
scrollLeft = getAttribute("scrollLeft"); // 滾動(dòng)條左位置
scrollTop = getAttribute("scrollTop");
}
}
}
function fnUnload()
{
with(window.document.body)
{
setAttribute("scrollLeft",scrollLeft);
setAttribute("scrollTop",scrollTop);
save("scrollState" + getFileName());
// 防止受其他文件的userdate數(shù)據(jù)影響,所以將文件名加上了
// userdate里的數(shù)據(jù)是不能跨目錄訪問的
}
}
window.onload = fnLoad;
window.onunload = fnUnload;
// -->
</script>
--------------------------------------------------------------------------------
通過對(duì)js函數(shù)的研究發(fā)現(xiàn),只要具有scroll屬性的html控件,都可以用這個(gè)方法來實(shí)現(xiàn)頁面刷新后的滾動(dòng)條的定位。當(dāng)然,函數(shù)是要做一下改動(dòng)。把 with(window.document.body)中的body改為其他控件的ID就可以了: with(window.document.all["控件ID"])
經(jīng)測(cè)試,通過!
本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/doublewang/archive/2006/08/25/1117809.aspx
聯(lián)系客服