簡體   English   中英

動態添加的ASP.Net按鈕無法調用Click或CommandArgument事件

[英]Dynamically added ASP.Net Button could not call Click or CommandArgument event

我將x個按鈕添加到asp.net Web應用程序。 這是我這樣做的代碼:

int i = 0;
foreach(var foo in bar){
    Button b = new Button();
    b.ID = "button" + i.ToString();
    b.CommandName = "var_value";
    b.CommandArgument = foo;
    b.Command += Execute_Command;

    //add to panel p
    p.Controls.Add(b);

    i++;
}

private void Execute_Command(object sender, CommandEventArgs e){
    //do stuff
}

永遠不會調用Execute_Command方法。 這些按鈕顯示得很好,在我調試時,它們已經分配了命令名稱和正確的命令參數。 我不確定自己在做什么錯。

按鈕是動態創建的,因此它們不在控件樹中 結果,當您觸發click事件時,它無法觸發Command事件。

為了對其進行修復,您需要在具有相同ID的 每個回發中重新加載Page_InitPage_Load事件中動態創建的按鈕。

例如,

protected void Page_Init(object sender, EventArgs e)
{
   int i = 0;
   foreach(var foo in bar){
      Button b = new Button();
      b.ID = "button" + i.ToString();
      b.CommandName = "var_value";
      .CommandArgument = foo;
      b.Command += Execute_Command;

      //add to panel p
      p.Controls.Add(b);

      i++;
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM