私はいくつかのWebコントロールをCreateChildControlsメソッドで動的に動かすユーザーコントロールを持っています。 のようなページには、このコントロールを使用した:それは完璧に動作コントロールをページに動的に追加されたユーザーコントロールに移動するにはどうすればよいですか?
<myControls:MyUserControl runat="server" ID="myUserControl" />
。
しかし、私のようなページに動的にユーザーコントロールを追加する場合:コントロールコレクションがDataBindを中に変更することができません:それはエラーで私のCreateChildControlsの内側にクラッシュ
protected void btnAdd_Click(object sender, EventArgs e)
{
MyUserControl myUserControl =(MyUserControl)LoadControl("~/Controls/MyUserControl.ascx");
myUserControl.ID = "test";
plhControls.Controls.Add(myUserControl);
}
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:PlaceHolder runat="server" ID="plhControls" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button runat="server" ID="btnAdd" OnClick="btnAdd_Click" />
は.cs 、Init、Load、PreRender、またはUnloadフェーズを実行します。
私は私のユーザーコントロール内のプレースホルダにWebBrowserコントロールを追加するとき、正確なラインは次のとおりです。
plhContent.Controls.Add(myWebControl);
私が追加したときに、この場合には、私はCreateChildControlsのイベント内のWebコントロールを移動することはできませんなぜだから私は理解していません私のUserControlを動的に。
残念ながら、以前のコントロールの動きのため、私は自分のコントロールを先に作成できません。したがって私はポストバックのためのパラメータを使用することはできません。 –