У меня есть usercontrol, которые динамически перемещаются по методу CreateChildControls с помощью некоторых веб-элементов управления. При использовании этого элемента управления на страницу, как:Как я могу перемещать элементы управления в динамически добавленный usercontrol на страницу?
<myControls:MyUserControl runat="server" ID="myUserControl" />
Он работает безупречно.
Но если я хочу добавить, что UserControl динамически на страницу, как:
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:PlaceHolder runat="server" ID="plhControls" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button runat="server" ID="btnAdd" OnClick="btnAdd_Click" />
.cs
protected void btnAdd_Click(object sender, EventArgs e)
{
MyUserControl myUserControl =(MyUserControl)LoadControl("~/Controls/MyUserControl.ascx");
myUserControl.ID = "test";
plhControls.Controls.Add(myUserControl);
}
он падает в моем CreateChildControls с ошибкой: Коллекция управления не может быть изменена во время DataBind , Init, Load, PreRender или Unload.
Точная линия, когда я добавить WebControls в заполнитель внутри моего UserControl:
plhContent.Controls.Add(myWebControl);
Так что я не понимаю, почему в этом случае я не могу переместить веб контроль в случае CreateChildControls, когда я добавляю мой UserControl динамически.
К сожалению, я не могу создать свой контроль раньше, из-за предыдущего перемещения управления. и поэтому я не могу использовать параметры для обратной передачи. –