• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

请教关于页面保存状态

t0h 2005-03-23 04:47:32
由页面A redirect到 页面B

再由页面B 跳转回 页面A

这时候要回复第一次掉转时页面A的状态

请教要怎么做啊? 现在是用SESSION保存的 有简单的办法吗
...全文
135 点赞 收藏 16
写回复
16 条回复
t0h 2005年04月01日
up
回复 点赞
t0h 2005年03月26日
up
回复 点赞
t0h 2005年03月25日
To:回复人: minghui000(我是肥仔)

如果我在B页面做了一些postback的交互,这种办法似乎就不可以了
回复 点赞
看看要就发发 2005年03月24日
楼上的详细点

study.
回复 点赞
t0h 2005年03月24日
是否可以,我跳转之前,保存页面的viewstate,跳回来,把viewstate附值回来。然后由.net自己对各个控件附值。
回复 点赞
snowszygq 2005年03月24日
帮你顶
回复 点赞
t0h 2005年03月24日
To: adminyao(程序傻子)

能用panel的地方,现在有一部分就是用panel做的。
但有的时候,我要从自己的页面跳到其他模块去,然后再回来。
回复 点赞
adminyao 2005年03月24日
用两个panel吧!
一个panel是一个页面,设置它的Visible
回复 点赞
syeerzy 2005年03月24日
楼上的方法是我一直使用的页面传值方法,不过说的不全面,就这么做的话得不到值的。要加2个不可缺的步骤。不过不是这里该讨论的问题。因为楼主要的“回去再回来”保存状态似乎这种做法不见的比Session好。

回去再回来保存状态,我觉得反正就是保存起来,怎么保存方便怎么保存,至于Session之类的,只要记得使用完马上让它null,也不见得就那么要紧了。
回复 点赞
lovelxj 2005年03月24日
网上吵来的 我没有试 你可以试试 好象是cheryy... 哥们的
(3)直接读取server.transfer过来的页面上的数据
前面2个就不说了,大家都知道怎么用,后面一个可能用的人比较少,这里做一下介绍。
Web 窗体页是应用程序中的类,因此可以向处理任何类一样为它们创建属性。但是,由于 Web 窗体页实际上仅在执行页的过程中存在,它们的生命周期非常短。因此,Web 窗体页上属性的用途相当有限,因为它们仅在处理页的过程中存在。但是,如果使用特定的技术将控件从一页传递到另一页,后一页仍可以访问前一页上的属性。
比如现在在一个webform页面上(page.aspx)放置了一个label,在
private void Page_Load(object sender, System.EventArgs e)
{
this.Label1.Text="test";
}
我们设定了它的值,再为这个页面类设定一个公开的属性
public Label lab
{
get
{
return Label1;
}
}
返回的就是这个页面上的一个Label
然后在这个页面上放置一个按钮,按钮的click事件中添加如下代码
Server.Transfer("newpage.aspx");
在newpage.aspx中同样放置一个Label标签,用来显示前一个页面那个Label的值,然后在Page_Load里面加上如下代码
if (!IsPostBack)
{
newpage p=(newpage)Context.Handler;
this.Label1.Text="传过来的值是:"+p.lab.Text;
}

我们运行这个程序,点击按钮,发现出现值传过来了,但是浏览器的url显示的还是原来的page.aspx,说明server.transfer是不改变浏览器的url的,其实这说明此事件仅仅是在服务器端完成,并没有到客户端,这也就是为什么能在无状态的http下得到前面一个页面的数据的原因,如果你换成response.redirect,你是不能得到任何东西的。分析一下上面的代码newpage p=(newpage)Context.Handler的意思就是创建源页类的实例变量,然后可以向其分配 HTTP 对象(IHttpHandler类的一个实例),即接收初始请求的对象。这样传值的好处在于不像session一样使用内存,特别适合大数据的情况(其实这不能称传值),坏处只能是同一个服务器页面之间,而且url并没有改变,用户看了可能会糊涂。

对程序你可以进一步改进,我们现在传的是一个Label的实例,你可以在页面间传递所有对象,甚至你可以直接使用前面一个页面的DataGrid!


回复 点赞
minghui000 2005年03月24日
<script language="javascript">
history.back(-1);
</script>
回复 点赞
t0h 2005年03月24日
up
回复 点赞
t0h 2005年03月23日
TO:jhqjhq(逗号)

A页面中有N多textbox,drpdownlist,grid之类
需要在跳转到B后,并在B中执行N多与服务器交互的操作
再返回到A

这时要保证用户看到,跳转到B之前,A页面的样子。

回复 点赞
jhqjhq 2005年03月23日
在a中增加一个 服务器控件用来保存数据,
如果数据少的话,
回复 点赞
t0h 2005年03月23日
To:oop80(RedSky)

如果我在B页面做了一些postback的交互,这种办法似乎就不可以了
回复 点赞
oop80 2005年03月23日
javascript:history.back(-2)
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告