C# asp.NET动态按钮服务器端事件Don';行不通

C# asp.NET动态按钮服务器端事件Don';行不通,c#,asp.net,button,C#,Asp.net,Button,我需要在asp.NET中为表中的每一行创建一个按钮。 我循环我的datareader并手动创建一个“输入”按钮。问题是,当我单击页面中的按钮时,它不会调用事件(btnLogin\u ServerClick) 我怎么能修理 对不起,我英语不好。。我已通过以下代码: int tmp = 0; while (dr.Read()) { myTable += "<tr>"; for(int i = 0; i <= 7; i++)

我需要在asp.NET中为表中的每一行创建一个按钮。 我循环我的datareader并手动创建一个“输入”按钮。问题是,当我单击页面中的按钮时,它不会调用事件(btnLogin\u ServerClick)

我怎么能修理

对不起,我英语不好。。我已通过以下代码:

    int tmp = 0;
    while (dr.Read())
    {
        myTable += "<tr>";

        for(int i = 0; i <= 7; i++)
        {
            myTable += "<td>";
            myTable += dr[i].ToString();
            myTable += "</td>";
        }

        myTable += "<td>";

         myTable += "<input class=\"btn btn-primary btn-lg outline\" type=\"button\" runat=\"server\" value=\"More\" name=\"btn" + tmp + "\" id=\"btnLogin" + tmp+ "\" onserverclick=\"btnLogin_ServerClick\" usesubmitbehavior=\"false\" />"; 
        myTable += "</td>";


        myTable += "</tr>";
        tmp++;
    }


    //--------------------
    //create dynamic table
    //--------------------
    server_badge.InnerText = tmp + "";
    servers_table.InnerHtml = myTable;
}

protected void btnLogin_ServerClick(object sender, EventArgs e)
{
    Response.Write("test");
}
inttmp=0;
while(dr.Read())
{
myTable+=“”;
对于(inti=0;i你不能

使用
按钮
类,而不是添加HTML片段。您将获得完全相同的HTML结果,但在后面的代码上使用实际对象,而不是字符串:

Button b = new Button();
b.CssClass = "btn btn-primary";
// and so on ...
按钮
类为您可能要配置的每个想象中的HTML属性都有一个属性。您会发现很多成员,只需忽略那些听起来古怪的成员,并坚持使用那些听起来像您需要的属性(
CssClass
单击
OnClientClick
等等)。分配完所需的所有内容(在HTML中)后,您最终可以附加事件侦听器:

b.Click += new EventHandler(btnLogin_ServerClick);
          ^ press <TAB> here
b.Click+=neweventhandler(btnLogin\u ServerClick);
^按这里
当您在
+=
之后按
并将其包装到适当的事件处理程序对象中时,Visual Studio将生成处理程序方法