gpt4 book ai didi

c# - 动态添加的 ASP.Net 按钮无法调用 Click 或 CommandArgument 事件

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:24 25 4
gpt4 key购买 nike

我正在向 asp.net web 应用程序添加 x 个按钮。这是我这样做的代码:

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 方法。这些按钮显示得很好,当我调试时,它们有命令名称和分配给它们的正确命令参数。我不确定我做错了什么。

最佳答案

按钮是动态创建的,因此它们不在控件树中。结果,当您触发点击事件时,它无法触发命令事件。

为了修复它,您需要在 Page_InitPage_Load 中重新加载动态创建的按钮具有相同 ID每个回发 事件。

例如,

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++;
}
}

关于c# - 动态添加的 ASP.Net 按钮无法调用 Click 或 CommandArgument 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40536550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com