![](/img/trans.png)
[英]Calling a WebMethod from the click event of dynamically added Button control in Asp.net does not work
[英]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_Init或Page_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.