Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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_.net - Fatal编程技术网

c#动态创建的按钮不触发点击事件

c#动态创建的按钮不触发点击事件,c#,asp.net,.net,C#,Asp.net,.net,我在我的webform中添加了一个asp.net表。使用foreach语句在表中动态添加表行和单元格。 每行的最后一个单元格中都有一个按钮。与按钮一起,我创建了一个单击事件 当我点击按钮时,我想将页面发送到“Default.aspx”表单 但当我运行应用程序时,单击按钮只会刷新页面 代码如下: int i = 1; Button btn; foreach (SP_GetEmpAgenda a in agenda) { TableRow r = ne

我在我的webform中添加了一个asp.net表。使用foreach语句在表中动态添加表行和单元格。 每行的最后一个单元格中都有一个按钮。与按钮一起,我创建了一个单击事件

当我点击按钮时,我想将页面发送到“Default.aspx”表单

但当我运行应用程序时,单击按钮只会刷新页面

代码如下:

    int i = 1;
    Button btn;
    foreach (SP_GetEmpAgenda a in agenda)
    {
        TableRow r = new TableRow();
        AgendaTable.Rows.Add(r);

        TableCell present = new TableCell();
        present.Text = a.Arrived.ToString();
        AgendaTable.Rows[i].Cells.Add(present);


        TableCell buttonCell = new TableCell();
        buttonCell.Width = 200;
        buttonCell.Height = 50;

        btn = new Button();
        btn.Text = "Check-In";
        btn.CssClass = "btn btn-outline-dark";
        btn.Click += (s, e) => { Response.Redirect("Default.aspx"); };

        buttonCell.Controls.Add(btn);

        AgendaTable.Rows[i].Cells.Add(buttonCell);

        i++;
    }
单击事件没有响应,只是刷新页面。但是,当我在Page_Load事件中在该方法之外创建一个按钮时,该按钮正常工作


如何使用动态创建的按钮执行此操作???

尝试在动态创建按钮时添加
ID
runat=“server”
属性

 btn = new Button();
 btn.ID = "NewBtn";
 btn.Text = "Check-In";
 btn.CssClass = "btn btn-outline-dark";
 btn.Attributes.Add("runat", "server");
 btn.Click += new EventHandler(NewBtn_Click);
另外,单独添加按钮单击事件,并将
响应.Redirect()
代码移动到该事件

protected void NewBtn_Click(object sender, EventHandler e)
{
  Response.Redirect("Default.aspx");
}  


如果仍然不起作用,请添加
使用submitbehavior=“false”
作为按钮属性,该属性将执行ASP.NET回发,而不是客户端的浏览器提交请求。

如您所述,应在页面加载中创建动态添加的控件,以便其视图状态也将保持不变。如果您在中创建!我想那时也会有问题。因此,在没有任何if条件的页面加载中创建

您应该使用锚链接进行重定向。它不会刷新页面移动“Response.Redirect(“Default.aspx”);”到下一行,添加断点并调试应用程序。它停了吗?@ChetanRanpariya,很有效,谢谢