目前,我正在爲學生宿舍做一個項目,現在我必須實施一些關於學生的搜索策略。在用戶點擊時必須動態創建一個按鈕.aspx頁面中的另一個服務器按鈕,因此我必須爲新創建的按鈕創建onclick事件處理程序。我使用的代碼片段是:如何爲動態創建的按鈕創建onClick eventHandler
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();
}
這裏,問題是新創建的eventHandler沒有被觸發。我瀏覽過這個網站,看了幾個問題和答案,也瀏覽了頁面生命週期,他們都說動態按鈕應該在Init或Pre_init上,但是我的問題是我必須在另外一個按鈕被點擊時創建它,怎麼可能呢?
是否應該點擊事件導致頁面回發? – 2012-08-10 11:00:05
不,它不會得到回覆@Saint – Jivan 2012-08-10 11:01:38
@burning_LEGION,你在我的問題上編輯了什麼?我找不到任何改進? – Jivan 2012-08-10 11:07:53