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

