public partial class Test : System.Web.UI.Page { //aspx生命周期 事件处理是在onInit 之后 pageLoad之前决定事件是否被执行,而在pageload后执行事件 .如
//果把生成控件代码放在PageLoad中 就不会执行事件处理
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.Panel1.Controls.Clear();
//生成
for (int i = 0; i < 5; i++)
{
TextBox t = new TextBox();
t.ID = "TextBox" + i.ToString();
t.Text = i.ToString();
//定义事件
t.TextChanged += new EventHandler(t_TextChanged);
//页面中 Panel控件
this.Panel1.Controls.Add(t);
}
}
//触发几个事件 就会执行几次 获取id做不同操作
void t_TextChanged(object sender, EventArgs e)
{
TextBox t=(TextBox)sender;
string id = t.ID;
string value = t.Text;
}
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++)
{
//动态获取 动态生成的控件
TextBox t = (TextBox)this.FindControl("TextBox" + i.ToString());
}
}
//OnInit 动态生成控件 //t_TextChanged 可以动态处理控件的事件
//Button1_Click 中 定义了 动态获取控件
//应用到实际案例中 如分页 动态生成 LinkButton 可以产生带数字的分页效果 }