나는 만든 asp.net 테스트 사용자 지정 컨트롤이 간단하고 클릭 이벤트가 발생하지 않는 이유를 파악하려고합니다. 아래는 코드입니다. 나는 단순히 테스트 페이지에서 컨트롤을 소비하는 .aspx 페이지의 Page_Load를 사용하여 컨트롤의 인스턴스를 만듭니다. protected void Page_Load (object sender, EventArgs e) {Page.Form.Controls.Add (new TestControl()); }ASP.NET 사용자 지정 컨트롤 단추 이벤트 발생시 발생하는 문제
페이지가 포스트 백을 수행하지만 사용자 컨트롤에서 클릭 이벤트를 선택하지 않습니다. 특정 패턴 등
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); ;
}
} } 당신은 페이지의 사용 LoadControl에 사용자 지정 컨트롤을 추가
this.Controls.Add (new TestControl()); 대신 페이지가로드됩니다. PageControls is weird – Machinegon