Ich versuche, eine Seite "Benutzer auswählen" zu erstellen, die Benutzerdaten dynamisch aus einer Datenbank extrahiert und anschließend einen Link für jeden Benutzer in der Datenbank generiert . Wenn auf den Link geklickt wird, ruft er eine C# -Funktion auf, um einen Cookie zu erstellen und den Benutzer umzuleiten.Erstellen eines HTML-Ankers zum programmgesteuerten Ausführen einer C# -Funktion
Der Code zieht die Benutzer korrekt aus der Datenbank und generiert die Links, die Links funktionieren jedoch nicht. Hier ist der C# -Code, die die Links erzeugt:
String sqlStatement = "SELECT * FROM TUsers";
SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlCommand comm = new SqlCommand(sqlStatement, conn);
conn.Open();
SqlDataReader Reader = comm.ExecuteReader();
while (Reader.Read())
{
container.InnerHtml += "<a runat='server' href='#' onServerClick='UserButton_Click' > <div class='users'> <p>" + Reader["FirstName"] + " " + Reader["LastName"] + "</p> </div> </a>";
}
Reader.Close();
conn.Close();
Hier ist der HTML-Quellcode auf der generierten Seite:
<div id="container"><a runat='server' href='#' onServerClick='UserButton_Click' > <div class='users'> <p>User 1</p> </div> </a>
Das Backend C# -Code für, wenn der Link angeklickt wird, ist irrelevant für diese Frage . Mit Breakpoints wird die Funktion, die aufgerufen werden soll, niemals aufgerufen.
Ich habe versucht mit HTML-Anker mit onServerClick, die bisher nicht die richtige Funktion ausgeführt, sowie versuchen, <asp:LinkButton>
Elemente zu verwenden, aber von was ich sagen konnte, wurden sie nicht korrekt analysiert, weil über generiert container.InnerHtml.
Generieren Sie die ganze Seite dynamisch oder füllen Sie ein 'container' div, das bereits vorhanden ist ts im Markup? – ConnorsFan
@ConnorsFan Der einzige Teil, der dynamisch erstellt wird, sind die Benutzer innerhalb des Container-Div. Der Rest der Seite existiert bereits in HTML Markup. – user3530169