空白のユーザー コントロール (子) があり、Page_Load 中にいくつかのテキスト ボックスとボタンを作成します。また、ボタンにイベントを追加します。
次に、そのユーザー コントロールを別のユーザー コントロール (親) のプレースホルダーから動的に読み込みます。両方のコントロールが正しくレンダリングされますが、ボタンをクリックするとイベントが発生しません。イベントの処理方法に関するアイデアはありますか?
子コード:
protected void Page_Load(object sender, EventArgs e)
{
/*... other user controls ..*/
UpdateButton = new LinkButton();
UpdateButton.ID = "buttonid";
UpdateButton.Text = "text";
UpdateButton.Click += new EventHandler(UpdateButton_Click);
this.Controls.Add(UpdateButton);
}
protected override void Render(HtmlTextWriter writer)
{
for (int i = 0; i < this.Controls.Count; i++)
{
this.Controls[i].RenderControl(writer);
}
}
public void UpdateButton_Click(object sender, EventArgs e)
{
//Do stuff
}
親コード:
protected void Page_Load(object sender, EventArgs e)
{
placeholder.Controls.Clear();
ChildControl uc = (ChildControl)LoadControl("~/UserControls/ChildControl.ascx");
placeholder.Controls.Add(uc);
}
子コントロールを直接使用すると (つまり、親コントロールなしで) クリック イベントが発生し、適切に処理されます。しかし、親コントロールを使用すると、デバッガーは UpdateButton_Click() 内のブレークポイントにさえヒットしません。
前もって感謝します。