为动态加载的用户控件获取价值

Getting Value for Dynamically Loaded User Control

我有一个由我的页面动态加载的用户控件。用户控件包含多个 select 列表框和其他控件。

其中大部分工作正常。在回发时,我的列表框控件被正确填充(我不必重新填充它们);但是,未设置任何 selected 项目。也就是说,GetSelectedIndices() returns 一个空集。

这里正确的顺序是什么?我的动态加载用户控件如何使用标准 ASP.NET 来获取 selected 列表框值?

虽然微软建议在Page_PreInit事件中重新创建动态控件,但实际上我发现在事件期间所有控件都是null。因此,我无法将动态控件添加到我的 Placeholder 控件中,因为 Placeholder 控件仍然是 null.

但是,我发现如果我在 Page_Init 事件中创建我的动态控件,事情似乎工作正常。

请注意,当您动态加载控件时,ASP.NET 将为该控件生成通常在创建动态控件之前触发的任何事件。所以我的用户控件可以拥有我通常编写的所有我想要的事件处理程序,而且一切似乎都正常。