你的分享就是我们的动力 ---﹥

一个页面的cs后台代码中,用public修饰过的DataTable类型变量的

时间:2014-07-17 17:10来源:www.chengxuyuans.com 点击:
一个页面的cs后台代码中,用public修饰过的DataTable类型变量的值,在不同代码块中不能保存的问题。求大神们指导!
一个页面的cs后台代码中,用public修饰过的DataTable类型变量的值,在不同代码块中不能保存的问题。求大神们指导!
我在一个页面中 先用public修饰了DataTable变量,但是在不同的代码块中调用此变量,此变量尽然为null,不知道是怎么回事?

声明变量的代码为(部分):

public partial class ShuJuDaoRu : System.Web.UI.Page
{
    public DataTable dtShangChuanBiao;
    protected void Page_Init(object sender, EventArgs e)
    {
        DongTaiChuangJianLie();
    }


在一个事件代码块中调试可以看到dtShangChuanBiao中已经存在数据,但是在另一个事件的代码块中调用此变量尽然为null值,这个问题怎么解决呀?
------解决方法--------------------
把代码粘出来
------解决方法--------------------
1.确实是不能如楼主想要的那样"保存"的,
  这是asp.net的最基础知识,请参见MSDN:ASP.NET 页生命周期概述(以.net4.0为例);
2.如果数据很小,楼主可以考虑存放在ViewState;
3.数据量大的时候,ViewState,Page.Items和Cache都不适合存放DataTable,因为都要经过相当耗时的序列化,页面会失去响应;
4.对于楼主的现有的技术条件,比较合适的做法就是:每次都重新获取数据集.
  
------解决方法--------------------
PostBack后类成员变量会丢失。需要用viewstate,cookie或者session来保存需要跨postback的数据。
------解决方法--------------------
一般都是重新获取数据集,数据量不大多次获取基本没影响。
------解决方法--------------------
应该是页面的生命周期的原因吧

转载注明地址:http://www.chengxuyuans.com/ADO.NET/79791.html