动态添加ASP.NET Web窗体控件在页面刷新时丢失状态

时间:2009-12-14 10:34:19

标签: c# asp.net-3.5

我正在根据下拉列表中所选项目的数据库中的值数创建动态标签和文本框。然后动态标签将具有名称和带有值的文本框。使用Page_init事件保留这些控件的值。所以我使用缓存从下拉列表中保存selectteditem。

问题:这个过程很顺利。但是,如果我尝试刷新页面,下拉列表中没有选择任何项目,但缓存未清除,因此使用此缓存值动态控制正在创建。

1 个答案:

答案 0 :(得分:1)

不幸的是,不保留动态添加的控件,因此您必须在每次页面加载时添加它们。因此,您必须从db重新加载,或者存储控件的总数,并使用init上的索引重新创建。 ViewState将重新加载到这些控件中以保留以前的值。

只是不幸的是你必须做这项工作,但动态控制就是这种情况。作为替代方案,您可以使用转发器来保留绑定到它的项目列表。

HTH。