Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态创建的按钮不调用事件c#_C#_Asp.net - Fatal编程技术网

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

动态创建的按钮不调用事件c#,c#,asp.net,C#,Asp.net,按钮不会调用它的事件 调用另一个按钮: 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

按钮不会调用它的事件

调用另一个按钮:

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;");
编辑

我尝试过这个代码,它工作正常<代码>占位符位于
表单
标记中,
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)
{

}

您是否尝试将该方法添加到事件列表中,如:
btn.Click+=btn\u Click?你必须在每次加载页面时添加你的按钮,否则ASp.NET Fireddon事件的来源是什么?不起作用Sebastian,Andrei-我不希望按钮在那里,除非单击另一个按钮,所以它只放在另一个按钮事件单击的占位符中。我放进去是为了防止帖子发回,删除/更改为true仍然不会触发事件:btn_Click@thatguy见五月编辑的答案。我用
VS2013
对此进行了测试。谢谢,我将其更改为通过Page_load加载,而不是通过另一个按钮加载,并且只需在按钮-接受中设置其可见性属性。如何停止回发?感谢您的帮助,但这只是检查它是否是回发,而不是在按钮上阻止它。