我定义了一个静态数组,在第一次加载的时候给他初始化了,然后在各个事件中用这个数组。我激发第一个事件的时候,数组还存在,但是又一次激发这个事件的时候,发现数组竟然销毁了,成了未定义状态了,请问是哪里出错了?

解决方案 »

  1.   

    也许你的Web Application又Start了一次
      

  2.   

    把数组保存在SESSION里,然后转换成数组
      

  3.   

    是不是在not ispostback 中写的数组??
      

  4.   

    是在!Page.IsPostBack中初始化的数组,但是我如果定义一个静态变量,不会有这个问题的
      

  5.   

    private static string[,] UnitInfo ;private void Page_Load(object sender, System.EventArgs e)
    {
     if(!Page.IsPostBack)
      {
        //初始化了数组
        UnitComDataAccess myUnits = new UnitComDataAccess();
        myUnits.getUnitsIDName(1,out UnitInfo);
       }
     else
      {
        ………………
      }
    }private void btnSave_Click(object sender, System.EventArgs e)
    {
      //事件中使用本数组
     }第一次触发事件能使用数组,当接着触发事件时,发现数组显示 <未定义的值>    
      

  6.   

    asp.net进程会随时重新启动。当asp.net遇到内部问题时,bin下的目录中的文件发生变化时,配置文件变化时,iis强制它重新启动时,内存空间变小时.....
      

  7.   

    你这种情况不应该用静态变量啊,你都说各个事件都会用到这个变量的,应该用session吧,静态变量多用户公用的吧
      

  8.   

    把这个!Page.IsPostBack去掉试试.
      

  9.   

    因为避免不断从数据库读取数据,才把他们写到IsPostBack中去的
      

  10.   

    那你就需要在每一次没有回发的时候,将结果保存到viewstate中,回发时,再将viewstate中的值转换回数组.