以下のコードに基づくと、機能していないようです。Page_Loadの後にコントロールをページに動的に追加できますが、EventHandlerをページに接続することはできません。
これが私のコードビハインドです:
public partial class AddingControlsToPanelAtRuntime : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DrawPage();
}
private void DrawPage()
{
Label label;
label = new Label();
label.ID = "Label1";
label.Text = "Label 1";
Panel1.Controls.Add(label);
Panel1.Controls.Add(new LiteralControl("<br />"));
label = new Label();
label.ID = "Label2";
label.Text = "Label 2";
Panel1.Controls.Add(label);
Panel1.Controls.Add(new LiteralControl("<br />"));
LinkButton linkButton1 = new LinkButton();
linkButton1.ID = "linkButton1";
linkButton1.Text = "linkButton 1";
linkButton1.Click += new EventHandler(LinkButton_Click);
Panel1.Controls.Add(linkButton1);
Panel1.Controls.Add(new LiteralControl("<br />"));
LinkButton linkButton2 = new LinkButton();
linkButton2.ID = "linkButton2";
linkButton2.Text = "linkButton 2";
linkButton2.Click += new EventHandler(LinkButton_Click);
Panel1.Controls.Add(linkButton2);
}
protected void LinkButton_Click(object sender, EventArgs e)
{
Panel1.Controls.Add(new LiteralControl("<p>"));
LinkButton linkButton4 = new LinkButton();
linkButton4.ID = "linkButton4";
linkButton4.Text = "linkButton 4";
linkButton4.Click += new EventHandler(LinkButton_Click);
Panel1.Controls.Add(linkButton4);
}
}
したがって、Page_Loadから呼び出されるDrawPage()では、すべてのコントロールがPanelに適切に追加され、EventHandlerが完全に接続されます。
LinkButton1またはLinkButton2をクリックすると、LinkButton_Click()が正しく呼び出されます。LinkButton_Click()で、実行時に別のコントロールを追加し、EventHandlerを接続しますが、そのリンクボタンをクリックすると、Page_Loadにポストバックするだけで、LinkButton_Click()は呼び出されません。
それで、私がここでやろうとしていることは、ASP.NETパイプラインに基づいて不可能ですか?