【发布时间】:2013-10-05 20:04:44
【问题描述】:
我在UserControl 中填充一个集合,然后从集合中创建动态LinkButton 控件。单击一个时,在回发时,集合为空。这种行为是设计使然,还是我可以做些什么来保持在回发时填充集合而不在代码中重新填充它们?需要在表单回发中重新查询吗?
【问题讨论】:
-
所有变量都在页面生命周期结束时处理。这是设计使然,它的本质是stateless HTTP。
-
然而,在 ASP.NET 页面上定义的变量在回发时是完整的。什么机制对此负责?为什么用户控件会被区别对待?
-
@Metaphot:页面和
UserControl之间没有区别。也许你有一个不会被破坏的静态字段。但是我强烈建议不要在像 ASP.NET 这样的多线程环境中使用静态字段。 -
声明为静态的控件将在回发时自动重新创建,动态创建的控件必须在回发时手动重新创建。
标签: c# asp.net user-controls dynamic-usercontrols