目前,我正在为学生宿舍做一个项目,现在我需要实现关于学生的一些搜索策略。在 .aspx 页面中,当用户单击另一个服务器按钮时,我必须动态创建一个按钮,并相应地为新创建的按钮创建 onclick 事件处理程序。我使用的代码片段如下:
protected void btnsearchByName_Click(object sender, EventArgs e)
{
TextBox tbsearchByName = new TextBox();
Button btnsearchName = new Button();
tbsearchByName.Width = 250;
tbsearchByName.ID = "tbsearchByName";
tbsearchByName.Text = "Enter the full name of a student";
btnsearchName.ID = "btnsearchName";
btnsearchName.Text = "Search";
btnsearchName.Click += new EventHandler(this.btnsearchName_Click);
pnlsearchStudents.Controls.Add(tbsearchByName);
pnlsearchStudents.Controls.Add(btnsearchName);
}
protected void btnsearchName_Click(object sender, EventArgs e)
{
lblsearch.Text = "btnsearchName_Click event fired in " + DateTime.Now.ToString();
}
这里的问题是新创建的事件处理程序没有被触发。我已经浏览了这个网站并查看了几个问题和答案,也研究了页面生命周期,它们都说动态按钮应该在Init或Pre_init上,但我的问题是当另一个按钮被点击时必须创建它,这怎么可能呢?