gpt4 book ai didi

c# - 动态创建的按钮不调用事件 c#

转载 作者:太空狗 更新时间:2023-10-30 01:17:20 24 4
gpt4 key购买 nike

按钮不会调用它的事件。

调用另一个按钮:

placeHolder.Controls.Add(CreateButton());

创建按钮:

public Button CreateButton()
{
Button btn = new Button();
btn.ID = "id";
btn.Text = "some text";
btn.Attributes.Add("onclick", "return false;");
btn.Click += new EventHandler(btn_Click);
return btn;
}

功能:

private void btn_Click(object sender, EventArgs e)
{
// do something.
}

放置调试行以查找源代码,它只是在单击时不调用 btn_Click()。缺少什么?

最佳答案

这段代码阻止了点击事件的触发:

btn.Attributes.Add("onclick", "return false;");

删除此代码,或将其更改为:

btn.Attributes.Add("onclick", "return true;");

编辑

我试过这段代码,它工作正常。 PlaceHolderform 标签中,runat 属性为 server:

protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
placeHolder.Controls.Add(CreateButton());
}

public Button CreateButton()
{
Button btn = new Button();
btn.ID = "id";
btn.Text = "some text";
btn.Click += btn_Click;
return btn;
}

private void btn_Click(object sender, EventArgs e)
{

}

关于c# - 动态创建的按钮不调用事件 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32118810/

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