Arraylist的问题,请教。

why2002plus 2008-11-25 09:52:47

Dim ddd As New ArrayList

Protected 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 Sub

Protected 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呢?该如何做才可以?请教。
...全文
68 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhnzzy 2008-11-25
  • 打赏
  • 举报
回复
设置成static类型即可
zhnzzy 2008-11-25
  • 打赏
  • 举报
回复
因为你每次点击按钮的时候页面会回发的,所以刷新了,第2次使用前便变成0了
why2002plus 2008-11-25
  • 打赏
  • 举报
回复
非常感谢
niit_zc 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mapserver 的回复:]
在页面的Page_Load的时候,ArrayList会被初始化。
如果要想达到lz的要求,可以把ddd放在ViewState中。
[/Quote]
正解
还有一个办法把ArrayList设置为静态变量:

static ArrayList ddd=new ArrayList();
jiang_jiajia10 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mapserver 的回复:]
在页面的Page_Load的时候,ArrayList会被初始化。
如果要想达到lz的要求,可以把ddd放在ViewState中。
[/Quote]
就是这个原理
root_ 2008-11-25
  • 打赏
  • 举报
回复
webform是无状态的

'把Dim ddd As New ArrayList改成
Shared ddd As New ArrayList()

mapserver 2008-11-25
  • 打赏
  • 举报
回复
在页面的Page_Load的时候,ArrayList会被初始化。
如果要想达到lz的要求,可以把ddd放在ViewState中。
哥本哈士奇 2008-11-25
  • 打赏
  • 举报
回复
对了,补充一下,你可以借助session这类东西暂时保存这样的对象的状态,但是不推荐.
哥本哈士奇 2008-11-25
  • 打赏
  • 举报
回复
asp.net页面每次postback都是一次生命周期,也就是相应的类都要重新被实例化.
这个是webform与winform最大的不同,建议楼主多理解下asp.net的page lifecycle.
哥本哈士奇 2008-11-25
  • 打赏
  • 举报
回复
是asp.net页面周期的问题.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧