C# asp.net按钮。单击事件不触发

C# asp.net按钮。单击事件不触发,c#,asp.net,events,button,event-handling,C#,Asp.net,Events,Button,Event Handling,我有一个ASP.NET网站,在其中我使用在aspx.cs上动态添加了一些表单控件 form1.Controls.Add( " Object of Control "); 另外,我们已经在aspx文件中添加了一个按钮,使用 <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Add" UseSubmitBehavior="false" /> 现在,当我运行程序时,它会将按钮1转换为HTML提

我有一个ASP.NET网站,在其中我使用在aspx.cs上动态添加了一些表单控件

form1.Controls.Add( " Object of Control ");
另外,我们已经在aspx文件中添加了一个按钮,使用

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Add" UseSubmitBehavior="false" />

现在,当我运行程序时,它会将按钮1转换为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">

当我点击按钮1时,它会提交表单,而不是调用代码隐藏函数

如何调用按钮1的OnClick事件中指定的方法Button1\u Click


请提供帮助。

您是否在codebehind中实现了单击事件处理程序

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


我不知道这个问题与您的动态控制问题有什么关系,因为
按钮1
是以声明方式添加的。

您是否在codebehind中实现了单击事件处理程序

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


我不知道这个问题与您的动态控件问题有什么关系,因为
按钮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\u单击Button1的Click事件。
在这种情况下,我必须手动创建功能按钮1\u单击,即不只是双击设计页面。

我应该动态添加按钮控件,如下所示:

    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\u单击Button1的Click事件。
在这种情况下,我必须手动创建函数Button1\u-Click,即不只是双击设计页面。

此语句onclick=“javascript:\u-doPostBack('Button1',''”)将导致调用Button1\u-Click事件。您确定没有触发此事件吗?此语句onclick=“javascript:\u doPostBack('Button1',''”将导致调用Button1\u Click事件。你确定不会触发此事件吗?我编辑了OP的标题。你说得对,我对动态控件没有任何影响。实际上,我想获取在Button1的onclick事件上动态添加的控件的值,该事件是以声明方式添加的。但是当我点击Button1时,它只是提交了调用Button1\u click的表单。有没有其他方法可以动态添加控件并在按钮单击事件上获取值?@PrasadJadhav:1。)您还没有演示如何动态添加控件(
“控件对象”
不是控件)。2.)提交页面是回发的典型方式。因此,在服务器上处理按钮的单击事件之前,必须提交/回发按钮。3.)您希望动态添加哪种控件?4.)您想在何处添加它们(例如,在面板/Div/GridView等中)。5.)您希望如何检测这些控件(例如,通过类似ID或位置)?6.)为什么要动态添加它们,而不使用任何内置的web数据绑定控件?好的。1) 大多数控件都是文本框,我使用TextBox TextBox1=new TextBox()添加;TextBox1.ID=名称;form1.Controls.Add(文本框1);3) 通常我会添加文本框、下拉列表和复选框。4) 我直接在表单上添加它们。使用样式控件,我在表单上给出位置。5)检测我有一个字符串变量,该变量具有动态添加控件的所有ID名称。我使用Textbox=(Textbox)Page.FindControl(“name”);6) 根据req,用户输入的变量正在更改。因此,除了创建单独的表单之外,我还在同一页面上动态添加控件。如果我开始为每个req创建单独的页面,那么我将很难跟踪每个页面,因为有很多不同的req页面。我的问题是,我只想获取用户在动态控件中输入的值,并将它们添加到数据库中。我编辑了OP的标题。你说得对,我对动态控件没有任何影响。实际上,我想获取在Button1的onclick事件上动态添加的控件的值,该事件是以声明方式添加的。但是当我点击Button1时,它只是提交了调用Button1\u click的表单。有没有其他方法可以动态添加控件并在按钮单击事件上获取值?@PrasadJadhav:1。)您还没有演示如何动态添加控件(
“控件对象”
不是控件)。2.)提交页面是回发的典型方式。因此,在服务器上处理按钮的单击事件之前,必须提交/回发按钮。3.)您希望动态添加哪种控件?4.)您想在何处添加它们(例如,在面板/Div/GridView等中)。5.)您希望如何检测这些控件(例如,通过类似ID或位置)?6.)为什么要动态添加它们,而不使用任何内置的web数据绑定控件?好的。1) 大多数控件都是文本框,我使用TextBox TextBox1=new TextBox()添加;TextBox1.ID=名称;form1.Controls.Add(文本框1);3) 通常我会添加文本框、下拉列表和复选框。4) 我直接在表单上添加它们。使用样式控件,我在表单上给出位置。5)检测我有一个字符串变量,该变量具有动态添加控件的所有ID名称。我使用Textbox=(Textbox)Page.FindControl(“name”);6) 根据req,用户输入的变量正在更改。因此,除了创建单独的表单之外,我还在同一页面上动态添加控件。如果我开始为每个req创建单独的页面,那么我将很难跟踪每个页面,因为有很多不同的req页面。我的问题是,我只想获取用户在动态控件中输入的值,并将它们添加到数据库中。