| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 241 人关注过本帖
标题:如何保存页面回传前的位置?
收藏  订阅  推荐  打印
nic
Rank: 2
等级:注册会员
帖子:175
积分:1850
威望:4
注册:2005-11-1
如何保存页面回传前的位置?

如果页面比较长,当页面发生回传(POSTBACK)时总是出现不能恢复到回传前的页面位置,有什么办法可以确保页面回传以后的位置还是原来的位置?
谁能把以下的翻译成VB
防止页面滚动#region 防止页面滚动
private void RetainScrollPosition()
{
StringBuilder saveScrollPosition = new StringBuilder();
StringBuilder setScrollPosition = new StringBuilder();

RegisterHiddenField("__SCROLLPOS", "0");

saveScrollPosition.Append("<script language='javascript'>");
saveScrollPosition.Append("function saveScrollPosition() {");
saveScrollPosition.Append(" document.forms[0].__SCROLLPOS.value = mybody.scrollTop;");
saveScrollPosition.Append("}");
saveScrollPosition.Append("mybody.onscroll=saveScrollPosition;");
saveScrollPosition.Append("</script>");

RegisterStartupScript("saveScroll", saveScrollPosition.ToString());

if (Page.IsPostBack)
{
setScrollPosition.Append("<script language='javascript'>");
setScrollPosition.Append("function setScrollPosition() {");
setScrollPosition.Append(" mybody.scrollTop = " + Request["__SCROLLPOS"]+ ";");
setScrollPosition.Append("}");
setScrollPosition.Append("mybody.onload=setScrollPosition;");
setScrollPosition.Append("</script>");

RegisterStartupScript("setScroll", setScrollPosition.ToString());
}
}
#endregion

[此贴子已经被作者于2006-2-22 17:09:09编辑过]

2006-2-22 17:02
islet
Rank: 12Rank: 12Rank: 12
等级:贵宾
帖子:6553
积分:65834
威望:89
注册:2005-1-28

[CODE]

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e){
NameValueCollection ServerVariables=Request.ServerVariables;
DataTable dt=new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("环境变量",typeof(String)));
dt.Columns.Add(new DataColumn("变量值",typeof(String)));
foreach(String SingleVariable in ServerVariables){
dr=dt.NewRow();
dr[0]=SingleVariable;
dr[1]=ServerVariables[SingleVariable].ToString();
dt.Rows.Add(dr);
}
DataGrid1.DataSource=new DataView(dt);
DataGrid1.DataBind();
}
</Script>
<html>
<head>
<title>获取环境变量</title>
</head>
<body>
<asp:DataGrid id="DataGrid1" Runat="Server" BorderColor="#000000" BorderWidth="1" GridLines="Both" Cellpadding="3" CellSpacing="0" Font-Name="Verdana" Font-Size="9pt" HeaderStyle-BackColor="#aaaadd" AlternatingItemStytle-BackColor="#eeeeee"/>

</body>
</html>

[/CODE]
2006-2-23 07:57
islet
Rank: 12Rank: 12Rank: 12
等级:贵宾
帖子:6553
积分:65834
威望:89
注册:2005-1-28

其中包含上一页来源
2006-2-23 07:57
共有 240 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.049925 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved