none
请问如何访问另一页面的对象 RRS feed

  • 问题

  • 比如A页面有一个Public 的DateTable  对象,然后我点击A页面里的一个Button1,在Button1.Click事件中给DataTable赋好值并跳转到B页面,我需要在B页面访问到A页面中的DataTable, 请问要怎么实现呢?
    2009年5月20日 3:47

答案

  • 页面传值发方式很多,你要传递复杂的对象,datatable:
    1.使用Session,Session["datable"] = datatable;
    a另外一个页面,可以拆箱操作,datatable = (datatable)Session["datable"];
    Session["datable"] = null;记得释放资源。
    不过要注意的Session传值效率不高,而且要暂用服务器内存。如果服务器繁忙,会出现Session丢失的现象。

    2.application也可以作到,但是不提倡;
    3.url 传递的值只是简单的数据类型,而其有长度限制256吧。

    4.你可以可以使用数据库存储数据,在另外一个页面读取,但是这个效率比较低了。
      推荐的方式是1.使用Session。但是要注意资源的释放~


    you have a dream,you gonna protect it! http://www.cnblogs.com/frank_xl
    2009年5月20日 4:28
    版主

全部回复

  • 我已经试过Server.Transfer了,因为在A和B页面都包含有UpdatePanel,所以在B页面进行一次PostBack时会报错,所以不能用Server.Transfer了。
    2009年5月20日 3:49
  • 页面传值发方式很多,你要传递复杂的对象,datatable:
    1.使用Session,Session["datable"] = datatable;
    a另外一个页面,可以拆箱操作,datatable = (datatable)Session["datable"];
    Session["datable"] = null;记得释放资源。
    不过要注意的Session传值效率不高,而且要暂用服务器内存。如果服务器繁忙,会出现Session丢失的现象。

    2.application也可以作到,但是不提倡;
    3.url 传递的值只是简单的数据类型,而其有长度限制256吧。

    4.你可以可以使用数据库存储数据,在另外一个页面读取,但是这个效率比较低了。
      推荐的方式是1.使用Session。但是要注意资源的释放~


    you have a dream,you gonna protect it! http://www.cnblogs.com/frank_xl
    2009年5月20日 4:28
    版主
  • 用session应该是没有办法的办法了,有没有高效率的方法呢?
    2009年5月20日 6:01
  • 可以放在cache对象 超时自动过期


    有效回复过700 撒花
    2009年5月20日 6:07
  • session是不是一种cache?
    2009年5月20日 6:34
  • 不是缓存cache,Session是ASP.NET的内置对象用来保存客户端的会话信息,它是维护在服务器内存里的。
    you have a dream,you gonna protect it! http://www.cnblogs.com/frank_xl
    2009年5月20日 12:34
    版主
  • 如果你的 DataTable 是应用程序都可以操作的,你可以考虑放到 Application 或 Cache 中,
    如果你的 DataTable 的数据是包含与帐号相关的敏感信息就用 Session 吧

    知识改变命运,奋斗成就人生!
    2009年5月20日 13:26
    版主