我在class里面定义string[] arrselected=new string[25];在Page_Load副职arrselected = selectedstring.Split(','); 但是在其他函数里调用它还是说没有实例话 奇怪啊 它不是全局变量吗 难道和其他变量不一样的

解决方案 »

  1.   

    在声明的时候赋个初值而且如果你是想当作真正的"全局"变量来用的话,最好做成页面的一个属性,放在viewstates里面,否则页面一刷新值将就会丢了
      

  2.   

    不一样 要看什么地方了   
    string[] arrselected=new string[25]
    这是 实例化
      

  3.   

    我是用在这里
    public void DelOrAlt_Click(object sender,CommandEventArgs e)
    {
    string commandText; bool result=true;int j=0;
    if(e.CommandName=="Del")
    {  

    try
    {
    commandText = "Delete from hr_overtimetemp where id = " + e.CommandArgument;
    hr.conn.Open();
    SqlCommand comm = new SqlCommand(commandText,hr.conn);
    comm.ExecuteNonQuery();
    hr.conn.Close();
    Response.Write("<script>alert(\"删除成功!\");</script>");
                          int Del=int.Parse(e.CommandArgument.ToString());

    for(int i=0;i<arrselected.Length;i++)
    {
    if(arrselected[i].Trim()!="")
    {
    if(Del==int.Parse(arrselected[i].ToString()))
    {
    break; }
    }
    j++;//记录被删除的数据在数组里的位置
    }
    //删除数组里的那个被已经被删除的记录对应的值
    for(int i=j;i<arrselected.Length-1;i++)
    {
    arrselected[i]=arrselected[i+1];
    }
    // for(int i=0;i<arrselected.Length;i++)
    //{
    //selectedstringTemp+=arrselected[i]+",";
    //}
    //selectedstringTemp = selectedstringTemp.Substring(0,selectedstringTemp.Length-1);
    BindData();
    }
    catch(SqlException)
    {
    Response.Write("<script>alert(\"删除失败!\");</script>");
                        result=false;
    }
    }


        

    }
      

  4.   

    我用的:
    string[] a=null;
    a=selectedstring.Split(',');这个样子是可以的你的名字和我朋友的一样呀
      

  5.   

    很正常啊,编译时的错误,他是为了防治如果没有PageLoad就调用了就会出现运行时错误了,给他初始化个值就行了
      

  6.   

    int Del=int.Parse(e.CommandArgument.ToString());for(int i=0;i<arrselected.Length;i++)
    {
    if(arrselected[i].Trim()!="")
    {
    if(Del==int.Parse(arrselected[i].ToString()))//不好!!!!!
    {
    break; }
    }
    j++;//记录被删除的数据在数组里的位置
    }
    //删除数组里的那个被已经被删除的记录对应的值
    for(int i=j;i<arrselected.Length-1;i++)
    {
    arrselected[i]=arrselected[i+1];//可能超出数组索引!!!!!!
    }
    -------------------------int Del=int.Parse(e.CommandArgument.ToString());for(int i=0;i<arrselected.Length;i++)
    {
    //记录被删除的数据在数组里的位置
    if(arrselected[i].Trim()!="" && e.CommandArgument == arrselected[i].Trim())
    arrselected[i]="";
    }还有如果
    string[] arrselected=new string[25];page_load()
    {
        arrselected = selectedstring.Split(','); 注意上面这句,arrselected会被重新初始化,长度不一定是25了。