Füllen Sie ein HTML-List-Steuerelement mit .NET

7

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

    
Andy White 29.05.2009, 05:58
quelle

4 Antworten

14

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%     
balexandre 29.05.2009 07:45
quelle
4

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%     
David Glenn 29.05.2009 06:59
quelle
2

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%     
Binoj Antony 29.05.2009 06:11
quelle
1

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:

  • Erstellen Sie die ungeordnete Liste 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.
  • Greifen Sie im Code auf den Inhalt der Liste zu und fügen Sie ein neues HtmlGenericControl vom Typ "li" hinzu.

Die folgende (einfache einfache) Seite zeigt diese Vorgehensweise:

%Vor%     
Cerebrus 29.05.2009 06:58
quelle

Tags und Links