asp.net Button.Click事件未触发

时间:2012-04-25 12:28:29

标签: c# asp.net events button event-handling

我有一个ASP.WebSite,我在其中使用

在aspx.cs上动态添加了一些表单控件
form1.Controls.Add( " Object of Control ");

另外一个已经使用

在aspx文件中的表单上添加了一个按钮
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Add" UseSubmitBehavior="false" />

现在当我运行程序时,它将Button1转换为HTML提交按钮,如下所示

<input type="button" name="Button1" value="Add" onclick="javascript:__doPostBack('Button1','')" id="Button1" />

,表单标记变为

<form name="form1" method="post" action="Add1.aspx" id="form1" enctype="multipart/form-data">

当我单击Button1时,它会提交表单,而不是在Code Behind上调用该函数。

我如何调用Button1的OnClick事件上指定的方法 Button1_Click

请帮助。

3 个答案:

答案 0 :(得分:4)

您是否在代码隐藏中实现了单击事件处理程序?

protected void Button1_Click(Object sender, EventArgs e)
{
    Button btn = (Button)sender;
}

Button.Click Event

我不知道这个问题是如何与您的动态控制问题相关的,因为Button1是以声明方式添加的。

答案 1 :(得分:1)

我已经动态添加了按钮控件,如下所示:

    b1.ID = "EDIT";
    b1.Text = "Add";
    b1.Click +=new System.EventHandler(this.Button1_Click);
    b1.Style["Position"] = "Absolute";
    b1.Style["Top"] = "10px";
    b1.Style["Left"] = "20px";
    form1.Controls.Add(b1);

它现在在Button1的click事件上调用函数Button1_Click。 在这种情况下,我必须手动创建函数 Button1_Click ,即不要只是双击设计页面。

答案 2 :(得分:-2)

您要动态添加的控件,您必须在页面加载时添加它。

然后它会正常工作。