image 闪烁 c# ajax updatepanel,asp.net通过Ajax UpdatePanel回传后滚动条位置变更解决方法...

主要方法是:

用一个隐藏控件保存当前scorll值。回传回来后根据scroll的值在重新设置scroll。

1、首先用onscroll事件保存scorll值,并用HiddenField记录scroll值

代码

//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。

代码

/*

2)在master页面中编写onscroll事件,记录其它页面中控件的scroll值

使用方法:只要在要设置控件中设置其ID并加入onscroll事件即可。即加入 οnscrοll="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)调用时,其它页面控件中加οnscrοll="SetScrollPosition(this)" 并设置ID即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值