[英]Dynamic Button not calling click event
我的頁面中有一個asp表,我從后面的代碼創建其內容。 對於此特定的TableRow,我需要創建一個多行文本框和一個按鈕,當我單擊按鈕時,將文本框內容保存到數據庫中。 但是我的點擊功能沒有被調用。 這是我的代碼:
ContentPlaceHolder cont = new ContentPlaceHolder();
HtmlGenericControl br = new HtmlGenericControl();
HtmlGenericControl br2 = new HtmlGenericControl();
TextBox texto = new TextBox();
Button btnSalvarTexto = new Button();
btnSalvarTexto.ID = "btnSalvar";
btnSalvarTexto.Click += new EventHandler(btnSalvarTexto_Click);
btnSalvarTexto.CssClass = "botao";
btnSalvarTexto.Text = "Salvar";
cont.ID = "Placeholder";
texto.ID = "TextBoxObs";
texto.Width = 300;
texto.TextMode = TextBoxMode.MultiLine;
texto.Rows = 3;
br.InnerHtml = "<br><br><div style='width:300px;background-color:#fff;padding:15px;'>";
cont.Controls.Add(br);
cont.Controls.Add(texto);
cont.Controls.Add(btnSalvarTexto);
br2.InnerHtml = "</div>";
cont.Controls.Add(br2);
td2.Controls.Add(cont);
tr2.Cells.Add(td2);
TablePrecos.Rows.Add(tr2);
事件處理程序:
void btnSalvarTexto_Click(object sender, EventArgs e)
{
//Update command here, this function doesn't even gets called, so it doesn't matter what it does
}
我的代碼有什么問題? 我在btnSalvarTexto_Click
函數中設置了一個斷點,但從未實現。
編輯:好的,創建這些控件的函數稱為CriarCapa,它在Page_LoadComplete
這樣調用:
protected void Page_LoadComplete(object sender, EventArgs e)
if (!IsPostBack)
{
CriarCapa();
}
是的,我正在測試是否不是回發。
您需要在每次頁面加載時重新創建按鈕,因為單擊按鈕會抹掉按鈕,並導致回發。
該按鈕導致回發,該回發會在實際事件處理程序之前在頁面生命周期中觸發Page_Load
事件。 由於該按鈕是動態創建的,因此在頁面加載發生並且您的代碼僅在第一次構建動態內容時,不會創建該按鈕,也不會創建click事件的事件處理程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.