Ich habe eine Liste wie folgt definiert:
%Vor%mit .NET Wie kann ich Elemente dynamisch zur Liste hinzufügen? Ich muss auch den Klassennamen für jedes neue Element angeben
Sie können sogar diesen HTML-Code verwenden, indem Sie runat="server" hinzufügen. Sie können ihn als HTMLControl behandeln, egal welche Kontrolle er hat, ich mache das oft mit div's
%Vor%Dann bekommst du das HTMLControl und spielst damit
%Vor%Sie werden enden mit:
%Vor%Natürlich können Sie eine Liste mit sortierten oder nicht sortierten Listen verwenden, diese auch unterhalb der ASP.NET-Websteuerelemente.
%Vor%Sie könnten asp: BulletedList wie
verwenden %Vor%Fügen Sie Add-Code wie
hinzu %Vor%Oder wenn Sie aus einem bestimmten Grund das ul-Tag verwenden müssen, können Sie runat="server" hinzufügen. ZB
%Vor%Mit Code wie
%Vor%Die einfachste Möglichkeit, dieses Problem zu lösen, ist die Verwendung des ASP Repeater-Steuerelements
%Vor%[Bearbeiten] - Denken Sie daran, die Datenquelle auf repeaterMyList zu setzen und die Datenindikation auf dem Repeater-Steuerelement im Codebehind aufzurufen.
%Vor%Ich gehe davon aus, dass es einen triftigen Grund gibt, das BulletedList-Webserver-Steuerelement nicht zu verwenden. Wie auch immer, dies ist eine interessante Programmierübung, die die Interna der Htmlservercontrol-Architektur und ihre Zuordnung zu einfachen HTML-Tags veranschaulicht.
Die Tags HTML ul
und li
werden nicht direkt als HTMLServerControls zugeordnet. Dies bedeutet, dass selbst wenn Sie der Liste ein runat="server"
-Attribut hinzufügen, der Inhalt nicht direkt als Listenelemente verfügbar ist.
Alle Steuerelemente, die nicht direkt als HTML-Serversteuerelemente zugeordnet sind, sind jedoch über die Klasse HtmlGenericControl
zugänglich. Dies ermöglicht es, solche Steuerelemente dynamisch zu erstellen und zu ändern.
Die Lösung ist daher zweifach:
runat="server"
, damit Sie im serverseitigen Code darauf zugreifen können. Außerdem sollten Sie die vorhandenen Elemente in der Liste runat="server"
einfügen, sonst sind sie nur als LiteralControl
verfügbar, die die ersten beiden Listenelemente als Nur-Text enthalten. Die folgende (einfache einfache) Seite zeigt diese Vorgehensweise:
%Vor%