作成した簡単なasp.netテストカスタムコントロールがあり、クリックイベントが発生しない理由を理解しようとしています。以下はコードです。Page_Load
コントロールを使用する.aspxページを使用して、テストページにコントロールのインスタンスを作成するだけですprotected void Page_Load(object sender, EventArgs e) { Page.Form.Controls.Add(new TestControl()); }
ページはポストバックを行いますが、ユーザー コントロールでクリック イベントを取得しません。私が間違っていること、または特定のパターンなどでこれにアプローチするより良い方法を説明してください.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI;
namespace WorldOfTest
{
public class TestControl : WebControl { private Button btn;
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
}
protected override void EnsureChildControls()
{
btn = new Button();
this.Controls.Add(btn);
base.EnsureChildControls();
}
protected override void CreateChildControls()
{
btn.Click += new EventHandler(btn_Click);
btn.Text = "test button";
base.CreateChildControls();
}
void btn_Click(object sender, EventArgs e)
{
throw new NotImplementedException();
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
btn.RenderControl(writer); ;
}
}
}