2016-04-16 5 views
0

Ich muss eine Schaltfläche für jede Zeile in meiner Tabelle in asp.net machen. Ich radelte meinen Datenleser und erstelle manuell eine "Eingabe" -Schaltfläche. Das Problem ist, dass wenn ich auf die Schaltfläche auf meiner Seite klicke, es nicht das Event (btnLogin_ServerClick) aufruft.ASP.NET Dynamic Button Server Nebenereignis Funktioniert nicht

Wie kann ich reparieren?

sorry für mein schlechtes Englisch .. ich an dem folgenden Code:

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"); 
} 

Antwort

1

können Sie nicht.

Anstatt ein HTML-Snippet hinzuzufügen, verwenden Sie die Klasse Button. Sie werden genau die gleiche HTML-Ergebnis erhalten, sondern auf der Code-Behind verwenden Sie ein tatsächliches Objekt, keinen String:

Button b = new Button(); 
b.CssClass = "btn btn-primary"; 
// and so on ... 

Die Button Klasse eine Eigenschaft für jede erdenkliche HTML Eigenschaft hat Sie möglicherweise zu konfigurieren. Sie werden viele Mitglieder finden, ignorieren Sie einfach diejenigen, die fremdartig klingen und bei denen bleiben, die wie das klingen, was Sie brauchen (CssClass, Click, OnClientClick und so). Nachdem Sie alle Sachen zugewiesen haben Sie brauchen (die in Ihrem HTML war) können Sie schließlich ein Ereignis-Listener anhängen:

b.Click += new EventHandler(btnLogin_ServerClick); 
     ^press <TAB> here 

Visual Studio wird der Handler-Methode generieren, wenn Sie <TAB> nach dem += drücken und es in eine wickeln richtiges Event-Handler-Objekt.