按钮不会调用它的事件。
在另一个按钮中调用:
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()。有什么遗漏?
答案 0 :(得分:4)
此代码可防止点击事件触发:
btn.Attributes.Add("onclick", "return false;");
删除此代码,或将其更改为:
btn.Attributes.Add("onclick", "return true;");
修改强>
我尝试了这段代码,但它运行正常。 PlaceHolder
位于form
标记中,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)
{
}