0

作成した簡単な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); ;
    }

    }
}
4

2 に答える 2