自定义控件无法触发click事件?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ServerControl1
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")]
public class ServerControl1 : WebControl,INamingContainer,IPostBackEventHandler
{
TextBox username;
TextBox password;
Button btnlogin;
CheckBox cbxRemember;
Table t;
/// <summary>
/// 创建控件的方法
/// </summary>
protected override void OnInit(EventArgs e)
{
btnlogin = new Button();
btnlogin.ID = "btn1";
btnlogin.Text = "登陆";
btnlogin.Click += new EventHandler(btnlogin_Click);
base.OnInit(e);
}
protected override void CreateChildControls()
{
base.CreateChildControls();
t = new Table();
TableRow tr1 = new TableRow();
TableCell cell11 = new TableCell();
TableCell cell12 = new TableCell();
tr1.Controls.Add(cell11);
tr1.Controls.Add(cell12);
cell11.Text = "用户名";
username = new TextBox();
cell12.Controls.Add(username);
TableRow tr2 = new TableRow();
TableCell cell21 = new TableCell();
TableCell cell22 = new TableCell();
cell21.Text = "密码:";
tr2.Controls.Add(cell21);
password = new TextBox();
cell22.Controls.Add(password);
tr2.Controls.Add(cell22);
TableRow tr3 = new TableRow();
TableCell cell31 = new TableCell();
TableCell cell32 = new TableCell();
cbxRemember = new CheckBox();
cbxRemember.Text = "记住cookies";
cell31.Controls.Add(cbxRemember);
tr3.Controls.Add(cell31);
cell32.Controls.Add(btnlogin);
tr3.Controls.Add(cell32);
t.Controls.Add(tr1);
t.Controls.Add(tr2);
t.Controls.Add(tr3);
}
void btnlogin_Click(object sender, EventArgs e)///此位置无法触发
{
this.onLogin(EventArgs.Empty);
}
public string UserName
{
get
{
return this.username.Text;
}
set
{
this.username.Text = value;
}
}
public string PassWord
{
get
{
return this.password.Text;
}
set
{
this.password.Text = value;
}
}
public event EventHandler Login;
//触发事件的方法
protected void onLogin(EventArgs e)
{
if (this.Login != null)
{
this.Login(this, e);
}
}
//protected override void EnsureChildControls()
//{
// if (!ChildControlsCreated)
// {
// this.BuildControls();
// this.ChildControlsCreated = true;
// }
// base.EnsureChildControls();
//}
protected override void RenderContents(HtmlTextWriter output)
{
//this.EnsureChildControls();
t.RenderControl(output);
}
#region IPostBackEventHandler 成员
public void RaisePostBackEvent(string eventArgument)
{
Login(this, EventArgs.Empty);
}
#endregion
}
}