请问:从一个页面链接到另一个页面,怎样保存前一个页面中输入的数据?

时间:2021-03-01 23:21:08
详细描述:
    第一个页面:first.aspx,其中有两个textbox(textbox1,textbox2),一个按钮(button1),
    在textbox1中输入了“abcde”,点击button1,进入另一个页面second.aspx,在第二个页面中有一个textbox(textbox1)和一个按钮(button1).在第二个页面中的textbox1中输入数据,点击按钮,关闭第二个页面,进入第一个页面,把第二个页面中textbox1中输入的数据写入到第一个页面的textbox2中,注意:第一个页面的textbox1中的数据必须还是“abcde”。
   请问:怎样实现这个过程。我不想用session,因为如果有很多输入数据话,我要定义很多的session.

14 个解决方案

#1


进入第二个页面:
Response.Redirect("second.aspx?txt=" + TextBox1.Text);
然后在此页面中保存txt的值,比如保存在strText1中。
从第二个页面进入第一个页面:
Response.Redirect("first.aspx?txt1=" + strText + "&txt2=" + TextBox1.Text);
然后在第一个页面中提取URL的参数。

#2


或者把 数据放到<input name='data' type='hide' value='你的数据'>
第二个页面 可以<input type='hide'value=<%Request.Form("data")%>>

#3


谢谢你们回答,如果我的数据量很大,在两个页面之间传递,这样不是很耗时。
我问的问题有点类似 ispostback函数,请问这个函数是什么原理?

#4


当第一次执行页面的是否IsPostBack的值为false。
当单击页面中的控件,使页面返回的是否,这个值为true。

#5


当第一次访问页面的时候,这个值为false。
当单击页面中的控件,使页面返回的时候,这个值为true。

#6


老兄,这个函数我也会用啊,我问的是原理,其它没有提交的信息是怎么保存的。

#7


保存在ViewState里。
ViewState只在一个页面里有效,关闭了浏览器或者转到其他页面之后,此页面的ViewState就消失了。

#8


放入到Session中去吧,如果参数过多,则为这个实体作一个Value类对象放于Session中,在返回时及时Remove就好

#9


first.aspx 通过 js :window.opnen()打开second.aspx
然后在second.aspx
里也用js: window.opener.document.all.TextBox1.value=xxx
....
赋值完毕后
window.opener.focus();window.close();
数据多的话,全部在客户端完成是好的选择
不过这样子,第一个页面不能关闭

#10


大家在开发过程中遇到这种情况,是怎样解决的?

#11


在说一下我的要求:
  1.我不想用session 或cookie.
  2. 也不想再打开另一个窗口(这种方法我已实现)
  3. 用url传递数据,数据量大怎么办?
   例如:做一个发邮件的东东,增加附件必须链接到另一个页面,但body中我已输入了很多的东西,利用url来传递数据,怕数据量太大,利用session,我可能要用到很多的session来保存发件人/收件人/抄送等的信息
(把这些信息放在一对象保存在session中,我正在测试),而且这些session应该在什么时候无效呢?

#12


Session对象在.net中是存储类的,所以如果你的数据量大的话你可以创建数组或者结构等来存取你的数据,然后建一个session存入,就可以保存数据了.session的生命周期为你设的Timeout时间,默认为20分钟,你可以自己在web.config中调节

#13


你为什么要用两个页面?放在一个页面里面不就行了么?
   例如:做一个发邮件的东东,增加附件必须链接到另一个页面?
难道不可以用Div或者span的来实现你的功能么?

#14


可以用Request.From[“data”],不过要去掉第一个页面中form的runat=server,其他和asp中一样,我作过,没问题。

#1


进入第二个页面:
Response.Redirect("second.aspx?txt=" + TextBox1.Text);
然后在此页面中保存txt的值,比如保存在strText1中。
从第二个页面进入第一个页面:
Response.Redirect("first.aspx?txt1=" + strText + "&txt2=" + TextBox1.Text);
然后在第一个页面中提取URL的参数。

#2


或者把 数据放到<input name='data' type='hide' value='你的数据'>
第二个页面 可以<input type='hide'value=<%Request.Form("data")%>>

#3


谢谢你们回答,如果我的数据量很大,在两个页面之间传递,这样不是很耗时。
我问的问题有点类似 ispostback函数,请问这个函数是什么原理?

#4


当第一次执行页面的是否IsPostBack的值为false。
当单击页面中的控件,使页面返回的是否,这个值为true。

#5


当第一次访问页面的时候,这个值为false。
当单击页面中的控件,使页面返回的时候,这个值为true。

#6


老兄,这个函数我也会用啊,我问的是原理,其它没有提交的信息是怎么保存的。

#7


保存在ViewState里。
ViewState只在一个页面里有效,关闭了浏览器或者转到其他页面之后,此页面的ViewState就消失了。

#8


放入到Session中去吧,如果参数过多,则为这个实体作一个Value类对象放于Session中,在返回时及时Remove就好

#9


first.aspx 通过 js :window.opnen()打开second.aspx
然后在second.aspx
里也用js: window.opener.document.all.TextBox1.value=xxx
....
赋值完毕后
window.opener.focus();window.close();
数据多的话,全部在客户端完成是好的选择
不过这样子,第一个页面不能关闭

#10


大家在开发过程中遇到这种情况,是怎样解决的?

#11


在说一下我的要求:
  1.我不想用session 或cookie.
  2. 也不想再打开另一个窗口(这种方法我已实现)
  3. 用url传递数据,数据量大怎么办?
   例如:做一个发邮件的东东,增加附件必须链接到另一个页面,但body中我已输入了很多的东西,利用url来传递数据,怕数据量太大,利用session,我可能要用到很多的session来保存发件人/收件人/抄送等的信息
(把这些信息放在一对象保存在session中,我正在测试),而且这些session应该在什么时候无效呢?

#12


Session对象在.net中是存储类的,所以如果你的数据量大的话你可以创建数组或者结构等来存取你的数据,然后建一个session存入,就可以保存数据了.session的生命周期为你设的Timeout时间,默认为20分钟,你可以自己在web.config中调节

#13


你为什么要用两个页面?放在一个页面里面不就行了么?
   例如:做一个发邮件的东东,增加附件必须链接到另一个页面?
难道不可以用Div或者span的来实现你的功能么?

#14


可以用Request.From[“data”],不过要去掉第一个页面中form的runat=server,其他和asp中一样,我作过,没问题。