asp.net通過Ajax UpdatePanel回傳后滾動(dòng)條位置變更解決方法
更新時(shí)間:2010年06月21日 16:06:32 作者:
用一個(gè)隱藏控件保存當(dāng)前scorll值?;貍骰貋砗蟾鶕?jù)scroll的值在重新設(shè)置scroll。
主要方法是:
用一個(gè)隱藏控件保存當(dāng)前scorll值。回傳回來后根據(jù)scroll的值在重新設(shè)置scroll。
1、首先用onscroll事件保存scorll值,并用HiddenField記錄scroll值
<div id="lv_content" class="unify_content" style="padding-left: 0; height: 455px;" onscroll="SetScrollPosition(this)">
</div>
<asp:HiddenField ID="HiddenFieldScroll" runat="server" />
代碼
//2、編寫onscroll事件,主要用于保存當(dāng)前控件的scroll值
function funSaveScroll(sender) {
//得到隱藏控件
var vScroll = $get('ctl00_ContentPlaceHolder1_hfLvScroll');
if (vScroll != null) {
//設(shè)置隱藏控件的值為scorll值
vScroll.value = sender.scrollTop;
}
}
代碼
//3、在頁面的加載完成事件中處理scorll值
var prm = Sys.WebForms.PageRequestManager.getInstance();
//設(shè)置加載完成事件
prm.add_pageLoaded(pageLoaded);
//加載完成重新設(shè)置控件的scroll值
function pageLoaded(sender, args) {
//得到要設(shè)置scroll值的控件
var vDiv = $get("lv_content");
if (vDiv != null) {
//得到隱藏控件
var vScrollValue = $get("ctl00_ContentPlaceHolder1_hfLvScroll");
//設(shè)置控件的scroll值
vDiv.scrollTop = vScrollValue.value;
}
}
通過以上代碼就可以解決回傳回來后scroll變動(dòng)的問題。
如果使用了Master頁面,可以將上邊的代碼放在master頁面中,進(jìn)行公用。
1)先在Master頁面中加入HiddenField。
<asp:HiddenField ID="HiddenFieldScroll" runat="server" />
代碼
/*
2)在master頁面中編寫onscroll事件,記錄其它頁面中控件的scroll值
使用方法:只要在要設(shè)置控件中設(shè)置其ID并加入onscroll事件即可。即加入 onscroll="SetScrollPosition(this)"語句
*/
function SetScrollPosition(sender) {
var scrollTemp = $get("ctl00_HiddenFieldScroll");
if (scrollTemp != null) {
//將要設(shè)置控件的ID和scroll值一起保存。中"|"分隔
scrollTemp.value = sender.id + "|" + sender.scrollTop;
}
}
代碼
//3)在頁面的加載完成事件中處理scorll值
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(onPageLoaded);
//The Pageloaded for scroll orientation
function onPageLoaded(sender, args) {
var scrollTemp = $get("ctl00_HiddenFieldScroll");
if (scrollTemp != null) {
var scorllValue = scrollTemp.value;
if (scorllValue.length > 0) {
var target = scorllValue.split("|");
if (target.length > 1) {
var targetControlID = target[0];
var targetValue = target[1];
var targetControl = $get(targetControlID);
//得到要設(shè)置控件
if (targetControl == null || targetValue.length < 1) {
return;
}
//設(shè)置控件的scroll值
targetControl.scrollTop = targetValue;
}
}
}
}
4)調(diào)用時(shí),其它頁面控件中加onscroll="SetScrollPosition(this)" 并設(shè)置ID即可
<div id="lv_content" class="unify_content" style="padding-left: 0; height: 455px;" onscroll="SetScrollPosition(this)">
</div>
用一個(gè)隱藏控件保存當(dāng)前scorll值。回傳回來后根據(jù)scroll的值在重新設(shè)置scroll。
1、首先用onscroll事件保存scorll值,并用HiddenField記錄scroll值
復(fù)制代碼 代碼如下:
<div id="lv_content" class="unify_content" style="padding-left: 0; height: 455px;" onscroll="SetScrollPosition(this)">
</div>
<asp:HiddenField ID="HiddenFieldScroll" runat="server" />
代碼
//2、編寫onscroll事件,主要用于保存當(dāng)前控件的scroll值
復(fù)制代碼 代碼如下:
function funSaveScroll(sender) {
//得到隱藏控件
var vScroll = $get('ctl00_ContentPlaceHolder1_hfLvScroll');
if (vScroll != null) {
//設(shè)置隱藏控件的值為scorll值
vScroll.value = sender.scrollTop;
}
}
代碼
復(fù)制代碼 代碼如下:
//3、在頁面的加載完成事件中處理scorll值
var prm = Sys.WebForms.PageRequestManager.getInstance();
//設(shè)置加載完成事件
prm.add_pageLoaded(pageLoaded);
//加載完成重新設(shè)置控件的scroll值
function pageLoaded(sender, args) {
//得到要設(shè)置scroll值的控件
var vDiv = $get("lv_content");
if (vDiv != null) {
//得到隱藏控件
var vScrollValue = $get("ctl00_ContentPlaceHolder1_hfLvScroll");
//設(shè)置控件的scroll值
vDiv.scrollTop = vScrollValue.value;
}
}
通過以上代碼就可以解決回傳回來后scroll變動(dòng)的問題。
如果使用了Master頁面,可以將上邊的代碼放在master頁面中,進(jìn)行公用。
1)先在Master頁面中加入HiddenField。
<asp:HiddenField ID="HiddenFieldScroll" runat="server" />
代碼
復(fù)制代碼 代碼如下:
/*
2)在master頁面中編寫onscroll事件,記錄其它頁面中控件的scroll值
使用方法:只要在要設(shè)置控件中設(shè)置其ID并加入onscroll事件即可。即加入 onscroll="SetScrollPosition(this)"語句
*/
function SetScrollPosition(sender) {
var scrollTemp = $get("ctl00_HiddenFieldScroll");
if (scrollTemp != null) {
//將要設(shè)置控件的ID和scroll值一起保存。中"|"分隔
scrollTemp.value = sender.id + "|" + sender.scrollTop;
}
}
代碼
復(fù)制代碼 代碼如下:
//3)在頁面的加載完成事件中處理scorll值
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(onPageLoaded);
//The Pageloaded for scroll orientation
function onPageLoaded(sender, args) {
var scrollTemp = $get("ctl00_HiddenFieldScroll");
if (scrollTemp != null) {
var scorllValue = scrollTemp.value;
if (scorllValue.length > 0) {
var target = scorllValue.split("|");
if (target.length > 1) {
var targetControlID = target[0];
var targetValue = target[1];
var targetControl = $get(targetControlID);
//得到要設(shè)置控件
if (targetControl == null || targetValue.length < 1) {
return;
}
//設(shè)置控件的scroll值
targetControl.scrollTop = targetValue;
}
}
}
}
4)調(diào)用時(shí),其它頁面控件中加onscroll="SetScrollPosition(this)" 并設(shè)置ID即可
<div id="lv_content" class="unify_content" style="padding-left: 0; height: 455px;" onscroll="SetScrollPosition(this)">
</div>
您可能感興趣的文章:
- asp.net ext treepanel 動(dòng)態(tài)加載XML的實(shí)現(xiàn)方法
- asp.net UpdatePanel的簡單用法
- ASP.Net PlaceHolder、Panel等控件未實(shí)現(xiàn)INamingContainer,導(dǎo)致FindControl無效
- asp.net UpdatePanel實(shí)現(xiàn)無刷新上傳圖片
- asp.net Coolite TablePanel使用
- ASP.NET中UpdatePanel與jQuery同時(shí)使用所遇問題解決
- asp.net updatepanel 導(dǎo)致JS不能加載,而無法使用的解決方法
- asp.net頁面觸發(fā)事件panel滾動(dòng)條高度不變的實(shí)現(xiàn)方法
- ASP.NET中 Panel 控件的使用方法
相關(guān)文章
asp.net下檢測遠(yuǎn)程URL是否存在的三種方法
檢測遠(yuǎn)程URL是否存在的三種方法,需要的朋友可以參考下。2009-12-12
.NET實(shí)現(xiàn)熱插拔功能(動(dòng)態(tài)替換功用)方案實(shí)例
如果某個(gè)"功能"需要?jiǎng)討B(tài)更新?這種動(dòng)態(tài)更新,可能是需求驅(qū)動(dòng)的,也可能是為了修改 BUG,面對(duì)這種場景,如何實(shí)現(xiàn)“熱插拔”呢?先解釋一下“熱插拔”:在系統(tǒng)運(yùn)行過程動(dòng)態(tài)替換某些功能,不用重啟系統(tǒng)進(jìn)程。下面看例子2013-11-11
ASP.NET內(nèi)置對(duì)象之Application對(duì)象
Application對(duì)象是HttpApplicationState類的一個(gè)實(shí)例,它可以產(chǎn)生一個(gè)所有Web應(yīng)用程序都可以存取的變量,這個(gè)變量的可以存取范圍涵蓋全部使用者,也就是說只要正在使用這個(gè)網(wǎng)頁的程序都可以存取這個(gè)變量。2008-09-09
asp.net 編譯器錯(cuò)誤信息: CS0006: 未能找到元數(shù)據(jù)文件 該死的.NET
今天公司新上一臺(tái)志強(qiáng)虛擬主機(jī) 所有配置都好了 給客戶調(diào)整.net 出現(xiàn)了報(bào)錯(cuò)2009-06-06
asp.net textbox javascript實(shí)現(xiàn)enter與ctrl+enter互換 文本框發(fā)送消息與換行(類似
今天與大家分享一下 asp.net textbox javascript實(shí)現(xiàn)enter與ctrl+enter互換 文本框發(fā)送消息與換行(類似于QQ),這個(gè)功能到底怎么實(shí)現(xiàn)?首先聲明以下幾點(diǎn)2012-01-01
Asp.Net 動(dòng)態(tài)頁面轉(zhuǎn)靜態(tài)頁面主要代碼
關(guān)于在Asp.Net中動(dòng)態(tài)頁面轉(zhuǎn)靜態(tài)頁面的方法網(wǎng)上比較多。結(jié)合實(shí)際的需求,我在網(wǎng)上找了一些源代碼,并作修改?,F(xiàn)在把修改后的代碼以及說明寫一下。2009-12-12
驗(yàn)證用戶必選CheckBox控件與自定義驗(yàn)證javascript代碼
CheckBox控件,由于它的值是選擇與非選擇。因此在提交數(shù)據(jù)時(shí),想讓用戶必須選擇CheckBox,普通情況之下,不好做驗(yàn)證;但我們可以使用asp:CustomValidator來驗(yàn)證,不過還得寫自定義驗(yàn)證Javascript代碼2013-01-01

