日期:2014-05-19  浏览次数:20657 次

在一个页面定义了一个datatable,请问如何在其他页面调用?
页面1的后台test1.aspx.cs:
public   partial   class   test1   :   System.Web.UI.Page
{
        public   static   DataTable   table1   =   new   DataTable( "work ");
        ......

页面2   test2.aspx.cs:
public   partial   class   test2   :   System.Web.UI.Page
{
        .....
        protected   void   Button3_Click(object   sender,   EventArgs   e)
        {
              这里如何调用table1的数据


看到一个类似问题的帖子回复里好像提到了ViewState,但不清楚那是什么。。。如果一定要用那个的话麻烦给个介绍地址,谢谢。


------解决方案--------------------
用Session 保存好了
------解决方案--------------------
ViewState的有效范围是在本页面。。。
楼上提到Session可行。。
------解决方案--------------------
ViewState不可以的,但可以用session
------解决方案--------------------
用seesion也可以保存还要吧用其它的方法进行保存
比如cookies,application,server.Transfer好像都可以
------解决方案--------------------
使用session比较合适。
session中保存的数据在同一次会话中都可以使用,而viewstate保存的数据仅能在一个页面中可以使用。页面A要使用另一个页面B的数据,可以在B页面把数据保存到session中,然后在A页面中把保存到session中的数据取出来。具体代码如下:

1.在B页面保存数据到session:
Session[ "table1 "] = new DataTable( "work ");

2.在A页面从session中取出数据并对其进行类型转换(保存到session中的数据其类型会变成object类型,所以需要类型转化),然后使用取出的数据:
DataTable = dt = Session[[ "table1 "] as DataTable;
if(dt!=null)
{
//.....
}

------解决方案--------------------
用session 可以 但习惯重新从数据库里提直接
------解决方案--------------------
使用cache,
存:
DataTable table1 = new DataTable( "work ");
cache[ "myTable "]=table1 ;
取:

DataTable table2=(DataTable )cache[ "myTable "];