UserControl中的集合在回发时丢失内容

时间:2013-10-05 20:04:45

标签: c# asp.net user-controls dynamic-usercontrols

我在UserControl中填充一个集合,然后从集合中创建动态LinkButton控件。单击一个时,在回发时,该集合为空。是这种行为是设计还是我可以做些什么来保持集合在回发上填充而不在代码中重新填充它们?我是否需要在表单回发中重新查询?

2 个答案:

答案 0 :(得分:2)

继承Web.UI.Page的类中定义的每个变量都将在Page-Lifecycle(包括控件和字段)结束时销毁,因此如果不这样,它将在回发时null重新初始化它。

将其保留在回发中的一种方法是将其存储在Session-variable

您可以在此处找到有关如何在回发中保留变量的所有选项的完整列表:http://msdn.microsoft.com/en-us/magazine/cc300437.aspx

  • 应用
  • 缓存
  • 表格发布/隐藏表格字段
  • 查询字符串
  • 会话
  • ASP.NET中的新状态容器
  • 高速缓存
  • 上下文
  • 视图状态
  • Web.config和Machine.config文件 结论

HTTP的本质是无国籍

答案 1 :(得分:1)

您需要在ViewState中保留信息,并在回发后加载ViewState时重新创建控件。例如,您可以存储创建的按钮数量,然后重新创建它们。

https://stackoverflow.com/a/15497035/1711598

上查看类似的解决方案