动态控件在回发时丢失

时间:2011-06-02 10:55:46

标签: c# asp.net postback repeater page-lifecycle

这又老栗子了。

我的页面构造如下;我有一个下载列表,在第一次加载时是数据绑定的。当用户从中选择一个值时,将执行回发,然后对转发器控件进行数据绑定。

此转发器控件的ItemTemplate包含占位符控件。在转发器的ItemDataBound事件后面的代码中,我向这个占位符动态添加了两个控件,一个隐藏字段和一个复选框。

当用户单击“保存”按钮时,我想要迭代所有这些动态创建的隐藏字段和复选框,并确定它们的值。但是,当用户单击“保存”按钮时,这些控件将不再存在,如页面跟踪中所示。

我知道这是一个生命周期问题,我在此看到的文章建议使用Init方法动态创建控件,但我不能因为我的页面工作方式,例如转发器控件仅出现,并在从下拉列表中选择一个值后绑定。

通过单击保存按钮导致的回发维护动态控件需要做什么?

2 个答案:

答案 0 :(得分:0)

问题是当您按下保存按钮时,您不会重新绑定转发器,并且您在运行时添加的ItemDataBound事件的控件不再可用(因为它们不再存在) 为什么不在设计时使用Eval函数添加这些控件设置隐藏字段的值?

答案 1 :(得分:0)

您只是动态地创建它们,只需对下拉设置可见性的选择更改为true或false,以解决您的问题。在回发后您必须再次创建这些控件,因为它们是动态的创建