-1

嗨,我在按钮单击事件上添加动态控件,因为我有下拉控件,我正在引发一个事件以下拉所选索引更改,我将自动回发设为 true,当我从下拉列表中选择新项目时我失去了所有的动态控制

4

2 回答 2

1

每个继承IPostBackDataHandler接口的服务器控件都有一个处理回发数据的LoadPostData方法。当控件由一个类(页面、表单、占位符、控件等)实现时,该类调用LoadPostData方法并传递发布的数据和键以维护控件状态

需要做的就是在回发期间每次在页面加载事件之前或之内重新实例化/重新初始化动态控件,并将此控件添加到页面/表单/占位符。然后通过父控件调用 LoadPostData 方法将发布的数据自动分配给控件,并触发控件事件。

查看文章以及如何编写动态控制代码 - 如何在asp.net中回发期间维护动态控制事件、数据

于 2013-09-21T08:30:55.707 回答
0

您必须在每次回发时重新创建所有动态创建的控件(最迟在加载事件中)。您还必须确保它们获得与以前相同的 ID 以触发事件并维护 ViewState。

如果您知道要创建的控件数量(可以存储在 中ViewState),则可以通过将其附加到控件 ID 来从计数器变量中派生 ID。然后您可以在页面init事件中使用正确的 ID 重新创建它们。

推荐读物:

或者您使用像Repeater这样自动执行此操作的内置数据绑定控件之一。你只需要设置它们并调用()。DataSourceDataBind

以下是我对与实现类似的问题的回答:

于 2012-11-30T08:29:12.083 回答