.net 刷新后滚动条不动加MaintainScrollPositionOnPostback=true 兼容gogle问题
2010-09-30 10:59
501 查看
昨天正好解决这个问题,在page里面设了MaintainScrollPositionOnPostback=true后,golgle浏览器并没有效果,正好我同学那有这么个方法,只要在page_load里面调用就ok了,要记录分享一下,呵呵。
/// <summary>
/// 页面回传,保持当前滚动条位置
/// </summary>
/// <param name="page"></param>
public static void RestoreScroll(Page page)
{
//注册一个Hidden Filed
page.ClientScript.RegisterHiddenField("Hidden_AX", "0");
System.Text.StringBuilder sb = new System.Text.StringBuilder();
//当滚动条滚动时将其到页顶的位置保存在Hidden Field中
sb.AppendLine("function getPageScroll() ");
sb.AppendLine("{ ");
sb.AppendLine(" var yScroll; ");
sb.AppendLine(" if (document.documentElement.scrollTop)//符合DTD标准的Page ");
sb.AppendLine(" { ");
sb.AppendLine(" yScroll = document.documentElement.scrollTop; ");
sb.AppendLine(" } ");
sb.AppendLine(" else ");
sb.AppendLine(" { ");
sb.AppendLine(" yScroll = document.body.scrollTop; ");
sb.AppendLine(" } ");
sb.AppendLine(" return yScroll; ");
sb.AppendLine("} ");
sb.AppendLine("function saveScrollPosition() ");
sb.AppendLine("{ ");
sb.AppendLine(" document.getElementById('Hidden_AX').value = getPageScroll();");
sb.AppendLine("} ");
sb.AppendLine("window.onscroll=saveScrollPosition; ");
page.ClientScript.RegisterStartupScript(page.GetType(), "AX", sb.ToString(), true);
//页面加载完后恢复滚动条的位置
if (page.IsPostBack)
{
sb.Remove(0, sb.Length);
sb.AppendLine("function setScrollPosition() ");
sb.AppendLine("{ ");
sb.AppendLine(" window.scrollTo(0," + page.Request["Hidden_AX"] + "); ");
sb.AppendLine("} ");
sb.AppendLine("document.body.onload=setScrollPosition; ");
page.ClientScript.RegisterStartupScript(page.GetType(), "AXzhz", sb.ToString(), true);
}
}
/// <summary>
/// 页面回传,保持当前滚动条位置
/// </summary>
/// <param name="page"></param>
public static void RestoreScroll(Page page)
{
//注册一个Hidden Filed
page.ClientScript.RegisterHiddenField("Hidden_AX", "0");
System.Text.StringBuilder sb = new System.Text.StringBuilder();
//当滚动条滚动时将其到页顶的位置保存在Hidden Field中
sb.AppendLine("function getPageScroll() ");
sb.AppendLine("{ ");
sb.AppendLine(" var yScroll; ");
sb.AppendLine(" if (document.documentElement.scrollTop)//符合DTD标准的Page ");
sb.AppendLine(" { ");
sb.AppendLine(" yScroll = document.documentElement.scrollTop; ");
sb.AppendLine(" } ");
sb.AppendLine(" else ");
sb.AppendLine(" { ");
sb.AppendLine(" yScroll = document.body.scrollTop; ");
sb.AppendLine(" } ");
sb.AppendLine(" return yScroll; ");
sb.AppendLine("} ");
sb.AppendLine("function saveScrollPosition() ");
sb.AppendLine("{ ");
sb.AppendLine(" document.getElementById('Hidden_AX').value = getPageScroll();");
sb.AppendLine("} ");
sb.AppendLine("window.onscroll=saveScrollPosition; ");
page.ClientScript.RegisterStartupScript(page.GetType(), "AX", sb.ToString(), true);
//页面加载完后恢复滚动条的位置
if (page.IsPostBack)
{
sb.Remove(0, sb.Length);
sb.AppendLine("function setScrollPosition() ");
sb.AppendLine("{ ");
sb.AppendLine(" window.scrollTo(0," + page.Request["Hidden_AX"] + "); ");
sb.AppendLine("} ");
sb.AppendLine("document.body.onload=setScrollPosition; ");
page.ClientScript.RegisterStartupScript(page.GetType(), "AXzhz", sb.ToString(), true);
}
}
相关文章推荐
- 刷新页面时原来位置固定不动,在页面刷新的时候。MaintainScrollPositionOnPostback="true"
- 刷新页面时原来位置固定不动,在页面刷新的时候。MaintainScrollPositionOnPostback="true"
- ASP.NET页面刷新后滚动条保留在刷新前的位置 MaintainScrollPositionOnPostback
- ASP.NET页面刷新后滚动条保留在刷新前的位置 MaintainScrollPositionOnPostback
- MaintainScrollPositionOnPostback="true"
- ASP.NET中,页面刷新后跳转到刷新前的位置 MaintainScrollPositionOnPostback属性的使用
- 解析 Page.MaintainScrollPositionOnPostBack 属性 页面刷新后定位
- [转].Net中的AutoScrollPosition问题 (panel 滚动条的位置设定)
- 设置了MaintainScrollPositionOnPostBack后“theForm._ScrollPositionx”为空或者不是对象的解决方法
- sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback
- MaintainScrollPositionOnPostback属性的使用
- ADO.NET 2.0 (app_offline.htm和MaintainScrollPositionOnPostback) 小技巧
- 关于MaintainScrollPositionOnPostBack 属性
- MaintainScrollPositionOnPostback
- PagesSection.MaintainScrollPositionOnPostBack 属性
- MaintainScrollPositionOnPostback属性
- ASP.NET中SmartNavigator(1.1)属性与MaintainScrollPositionOnPostback新属性解析
- 解析 Page.MaintainScrollPositionOnPostBack 属性
- Page.MaintainScrollPositionOnPostBack
- sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback