Sortieren Sie die Listbox-Elemente in C #

7

Ich entwickle eine Webseite, indem ich ein Listenfeld zeige, das aus einer Datenbank geholt wird. Dynamisch habe ich einige Elemente hinzugefügt. Es wird am Ende des Listenfelds hinzugefügt, sodass ich das Listenfeldelement nach dem Hinzufügen von Elementen sortieren möchte. Ich habe Arraylist zum Sortieren ausprobiert, aber es funktioniert nicht.

    
Sakthivel 05.11.2009, 11:55
quelle

8 Antworten

22

Ich weiß, dass diese Frage ziemlich alt ist, aber ich habe mir einen Weg gesucht, dies ohne Vergleichsklassen, ArrayLists usw. zu machen. Also dachte ich, ich würde die Methode einfügen, die ich für andere verwendet habe:

Bitte beachten Sie, dass meine Methode LINQ to Objects verwendet, so dass es nur in neueren Versionen des Frameworks funktioniert.

%Vor%     
Carl Heinrich Hancke 03.08.2010 12:41
quelle
3

Versuchen Sie diesen Code in PreRender event Ihrer ListBox .

%Vor%     
The King 05.11.2009 14:17
quelle
1

Probieren Sie den folgenden Code:

%Vor%

Wenn Sie das Listenfeld binden, indem Sie die Datenquelle als DataTable festlegen und mit db-Daten füllen, fügen Sie den Datensatz der Datentabelle hinzu, wenn Sie ein neues Element hinzufügen möchten, anstatt das Element hinzuzufügen. Erstellen Sie anschließend eine Datenansicht für diese Datentabelle, und sortieren Sie die Daten in der Datenansicht wie folgt:

%Vor%

dann legen Sie die Datenquelle der Listbox als dv.ToTable()

    
Himadri 05.11.2009 12:23
quelle
1

Sie müssen die Datentabelle sortieren, bevor Sie sie dem Listenfeld als Datenquelle zuweisen.

DataTable.DefaultView.sort="[Spaltenname]".

Da Sie erwähnt haben, dass Sie die Add-Methode verwenden, um ListItems in List hinzuzufügen, hängt die Add-Methode immer die ListItems an. Sie können Elemente im gewünschten Index hinzufügen, indem Sie die Insert-Methode mit Index verwenden. List.Insert (ListItem, Index)

Prost

    
Zinx 05.11.2009 12:38
quelle
0

Meinst du damit dynamisch, dass du Elemente hinzufügst, die über Javascript oder nach der Rückübertragung von irgendwas mit ASP.NET-Steuerelementen aufgelistet werden?

Wenn Sie dynamisch mit Javascript hinzufügen, würde Ihre Antwort mit jQuery sortieren, und wenn Sie nach dem Postback mit ASP.NET arbeiten, sollten Sie das Listenobjekt unter System.Collections.Generic verwenden.

    
eugeneK 05.11.2009 12:06
quelle
0

Rufen Sie einfach ArrayList.Sort auf. Codebeispiel im Link.

    
rick schott 05.11.2009 14:50
quelle
0

Hier ist der VB-Code   Private Sub-Sortierliste (ByVal Ib als DropDownList)     'eine LINQ-fähige Liste der Listenelemente abrufen     Dim-Liste als neue Liste (von ListItem) (lb.Items.Cast (Of ListItem) ())     Verwenden Sie LINQ to Objects, um die Elemente nach Bedarf zu sortieren     list = list.OrderBy (Funktion (li) li.Text) .ToList ()     'Entfernen Sie die ungeordneten Elemente aus der Listbox, so dass wir keine Duplikate erhalten     lb.Items.Clear ()     'Jetzt fügen Sie unsere sortierten Artikel zurück     lb.Items.AddRange (list.ToArray ())   End Sub

    
Ed M 05.04.2014 21:11
quelle
0

Ich weiß, dass dies der Antwort von The King sehr ähnlich ist, aber so hat es bei mir funktioniert.

%Vor%

Ich hoffe, das funktioniert für jemand anderen.

    
Nancy Rocio 25.03.2015 18:31
quelle

Tags und Links