Dim ddd As New ArrayListProtected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        ddd.Add("ooo")
        ddd.Add("ffo")
        Label1.Text = ddd.Count
End SubProtected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
        ddd.Add("fff")
        Label1.Text = ddd.Count
End Sub
点Button1,label1.text=2
点Button2,label1.text=1
点Button2,label1.text为什么不等于3呢?该如何做才可以?请教。

解决方案 »

  1.   

    asp.net页面每次postback都是一次生命周期,也就是相应的类都要重新被实例化.
    这个是webform与winform最大的不同,建议楼主多理解下asp.net的page lifecycle.
      

  2.   

    对了,补充一下,你可以借助session这类东西暂时保存这样的对象的状态,但是不推荐.
      

  3.   

    在页面的Page_Load的时候,ArrayList会被初始化。
    如果要想达到lz的要求,可以把ddd放在ViewState中。
      

  4.   

    webform是无状态的'把Dim ddd As New ArrayList改成
    Shared ddd As New ArrayList()
      

  5.   

    正解
    还有一个办法把ArrayList设置为静态变量:static ArrayList ddd=new ArrayList();