从一个页面传较多数据到另一个页面除了用session外有什么更好的办法吗?

时间:2021-09-23 23:20:35
在一个页面的表单上填了很多信息,(比如您申请邮箱时需要填很多消息),需要弹出到另一个页面进行保存。

在第一个页面上填写的信息已经构造成一个XML字串,比较长,如何把这个字串传到第二个页面进行保存?

谢谢。

22 个解决方案

#1


既然是XML字串,又不想用session,可以在第一个页面存一个临时的xml文件。第二个页面直接保存那个xml文件

#2


先谢谢:jenyfloat(飘) 

我期待更好的方法....

#3


post提交即可。

向弹出窗口提交也很容易,用点js脚本即可搞定。

范例:
<script language="javascript"> 
  function xxx() 
 {win = window.open("","xxx","width=100,height=100")} 
</script> 
<form action="xxx.asp" target="xxx" onsubmit="return xxx()"> 
<input type="submit" value="submit"> 
</form> 

#4


想这样的情况我比较喜欢这种结构
写一个类,例如 ClassUser,
在第一个页面实例化
            calssUser.ID = ...;
            calssUser.Name = ....;
把它用server.Transfer的方式整个传到另一个页面
            calssUser.Age = ...;
            calssUser.Address = ....;
 
            calssUser.Save();//save方法当然是自己写

#5


用属性,server.transfer(".aspx")

#6


(C#静态变量相等一个全局变量。)创建一个静态的类,在该类定义一个静态的字符串变量。
第一个页面你把用户信息就存放到该类的字符串变量里,在另一个页面就可以调用该变量的值。

#7


利用上下文对象来得到上一个页面。然后得到这个页面的所有值。

#8


谢谢大家的回答。

我现在正用的是SpbDev(急先锋)提供的方法,但用着用着发现了不顺手的地方。
<form action="xxx.asp" target="xxx" onsubmit="return xxx()"> 这里是不是不能加runat = server?由于不能加runat = server,所以该form就不能放webcontrol.button控件,顶多只能放HtmlInputHidden,我现在有些地方必需要用webcontrol.button控件。
如果您还不明白我的意思并且乐意帮助我,我们可以QQ或MSN联系。

还有两位提供了server.Transfer的方法,还有提供的“C#静态变量相等一个全局变量”
都必须要提交到服务器,所以打开第二个页面时第一个页面都刷新变成空白了。

 greystar(greystar) ( )提供的方法我不太明白,(基本功有点差 :))会不会刷新呢

谢谢

#9


Eddie005(暴走005) 方法不错呀,
这就用到了数据实体类了吧?

#10


既然那么多数据,在这个页面保存不是更好

#11


TO  xrll() 
需要到另一个页面中选择接收人,必须要到另一个页面。

我也想用SpbDev(急先锋) 提供的方法,用JAVASCRIPT就可以弄好,但其中不足的地方我在上面也说了,

用其他几位提供的方法,好象都要刷新窗口,即打开另一个窗口的时候,第一个窗口变成了空白了.....

#12


那只好用Server.Transfer
old页面Server.Transfer(new.aspx)
new页面取值:old op = (old)Context.Handler;
string t1 =  op.TextBox1.Text;
string t2 =  op.TextBox2.Text;
......

#13


up

#14


Request.QueryString

#15


ASP.net webfroms页面间的传值方法:共有三种:
1、使用querystring
2 session
3 server.transfer

#16


我用了Server.Transfer("");
可是好象没有打开新窗口。

比如:想把WebForm1中的数据传到WebForm2中,在WebForm1的某个按钮事件中加:
Server.Transfer("WebForm2.aspx");
Response.Write("<script>window.showModalDialog('WebForm2.aspx','','')</script>");

在WebForm2的Load事件中加:
WebForm1 op = (WebForm1)Context.Handler;
string s = op.TextBox1.Text;
Response.Write(s);

在WebForm2的Load事件中设置了断点,可以执行断点,但URL上显示的还是WebForm1,没有新找开一个窗口

#17


再关注

#18


study

#19


学习

#20


UP+学习

#21


写一个公共的类,当要传值时就改变类中相应变量的值,其它页面读取就可以了

#22


应该说Cache应该也是可以的,
同时用全局性的变量好象也是可以的!

#1


既然是XML字串,又不想用session,可以在第一个页面存一个临时的xml文件。第二个页面直接保存那个xml文件

#2


先谢谢:jenyfloat(飘) 

我期待更好的方法....

#3


post提交即可。

向弹出窗口提交也很容易,用点js脚本即可搞定。

范例:
<script language="javascript"> 
  function xxx() 
 {win = window.open("","xxx","width=100,height=100")} 
</script> 
<form action="xxx.asp" target="xxx" onsubmit="return xxx()"> 
<input type="submit" value="submit"> 
</form> 

#4


想这样的情况我比较喜欢这种结构
写一个类,例如 ClassUser,
在第一个页面实例化
            calssUser.ID = ...;
            calssUser.Name = ....;
把它用server.Transfer的方式整个传到另一个页面
            calssUser.Age = ...;
            calssUser.Address = ....;
 
            calssUser.Save();//save方法当然是自己写

#5


用属性,server.transfer(".aspx")

#6


(C#静态变量相等一个全局变量。)创建一个静态的类,在该类定义一个静态的字符串变量。
第一个页面你把用户信息就存放到该类的字符串变量里,在另一个页面就可以调用该变量的值。

#7


利用上下文对象来得到上一个页面。然后得到这个页面的所有值。

#8


谢谢大家的回答。

我现在正用的是SpbDev(急先锋)提供的方法,但用着用着发现了不顺手的地方。
<form action="xxx.asp" target="xxx" onsubmit="return xxx()"> 这里是不是不能加runat = server?由于不能加runat = server,所以该form就不能放webcontrol.button控件,顶多只能放HtmlInputHidden,我现在有些地方必需要用webcontrol.button控件。
如果您还不明白我的意思并且乐意帮助我,我们可以QQ或MSN联系。

还有两位提供了server.Transfer的方法,还有提供的“C#静态变量相等一个全局变量”
都必须要提交到服务器,所以打开第二个页面时第一个页面都刷新变成空白了。

 greystar(greystar) ( )提供的方法我不太明白,(基本功有点差 :))会不会刷新呢

谢谢

#9


Eddie005(暴走005) 方法不错呀,
这就用到了数据实体类了吧?

#10


既然那么多数据,在这个页面保存不是更好

#11


TO  xrll() 
需要到另一个页面中选择接收人,必须要到另一个页面。

我也想用SpbDev(急先锋) 提供的方法,用JAVASCRIPT就可以弄好,但其中不足的地方我在上面也说了,

用其他几位提供的方法,好象都要刷新窗口,即打开另一个窗口的时候,第一个窗口变成了空白了.....

#12


那只好用Server.Transfer
old页面Server.Transfer(new.aspx)
new页面取值:old op = (old)Context.Handler;
string t1 =  op.TextBox1.Text;
string t2 =  op.TextBox2.Text;
......

#13


up

#14


Request.QueryString

#15


ASP.net webfroms页面间的传值方法:共有三种:
1、使用querystring
2 session
3 server.transfer

#16


我用了Server.Transfer("");
可是好象没有打开新窗口。

比如:想把WebForm1中的数据传到WebForm2中,在WebForm1的某个按钮事件中加:
Server.Transfer("WebForm2.aspx");
Response.Write("<script>window.showModalDialog('WebForm2.aspx','','')</script>");

在WebForm2的Load事件中加:
WebForm1 op = (WebForm1)Context.Handler;
string s = op.TextBox1.Text;
Response.Write(s);

在WebForm2的Load事件中设置了断点,可以执行断点,但URL上显示的还是WebForm1,没有新找开一个窗口

#17


再关注

#18


study

#19


学习

#20


UP+学习

#21


写一个公共的类,当要传值时就改变类中相应变量的值,其它页面读取就可以了

#22


应该说Cache应该也是可以的,
同时用全局性的变量好象也是可以的!