动态创建的按钮不调用事件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加载,而不是通过另一个按钮加载,并且只需在按钮-接受中设置其可见性属性。如何停止回发?感谢您的帮助,但这只是检查它是否是回发,而不是在按钮上阻止它。