Programmatically add a button
protected void btn_Click(object sender, EventArgs e) { form1.Controls.Add(tt); } protected void create_Click(object sender, EventArgs e) { int k = -1; int l = -1; if ((int.TryParse(row.Text, out k)) && (int.TryParse(cell.Text, out l))) { if ((k > 0) && (l > 0)) { HtmlTable table = new HtmlTable(); table.Border = 1; table.CellPadding = 3; table.CellSpacing = 3; table.BorderColor = "red"; HtmlTableRow new_row; HtmlTableCell new_cell; for (int i = 1; i <= k; i++) { new_row = new HtmlTableRow(); new_row.BgColor = (i % 2 == 0 ? "lightyellow" : "lightcyan"); for (int j = 1; j <= l; j++) { new_cell = new HtmlTableCell(); if (i == k) { Button btn = new Button(); btn.ID = "" + j + i; btn.Click += new EventHandler(this.btn_Click); btn.Text = "Автор"; new_cell.Controls.Add(btn); } else { new_cell.InnerHtml = "" + i + j; } new_row.Cells.Add(new_cell); } table.Rows.Add(new_row); } form1.Controls.Add(table); } } } <form id="form1" runat="server"> <div> <p> <a>Введіть кількість рядків</a> <asp:TextBox runat="server" ID="row"></asp:TextBox> <a>      Введіть кількість стовпців</a> <asp:TextBox runat="server" ID="cell"></asp:TextBox> </p> <p> <asp:Button ID="create" runat="server" Text="Побудувати таблицю" OnClick="create_Click"/> </p> </div> </form> But the event handler does not work.