Kontrolle der Gruppenreihenfolge in einem Kendo UI Grid

8

Gibt es eine Möglichkeit, die Reihenfolge der Gruppierung in einem Kendo UI-Gitter zu steuern? Es gibt eine Gruppe, die ich vor allen anderen Gruppen sehen möchte, aber es scheint, dass Kendo UI Grid die Gruppen alphabetisch sortiert. Ich weiß, dass das Hinzufügen eines Platzes zum Gruppennamen funktioniert, aber das scheint sehr hackisch zu sein.

Danke Leo

    
MammothOne 03.05.2013, 19:45
quelle

7 Antworten

5

Es gibt derzeit keine Möglichkeit, eine Gruppierung nach etwas anderem als dem Feld der Gruppe zu sortieren. Eine Möglichkeit, Gruppen wie Telerik in ihren Nicht-Kendo-Grids zu sortieren, ist momentan meine größte Feature-Anfrage für sie. Also stecken wir fest, Hacks für jetzt zu verwenden.

Ein Hack, der für mich funktioniert, besteht darin, das Sortierfeld und das Anzeigefeld zu einer neuen Stringspalte zu kombinieren, die den Sortierfeldbereich innerhalb einer versteckten Spanne verbirgt. Dies geschieht auf der Datenquellenseite (für mich in SQL). Die neue Spalte wird dann als Zeichenfolge sortiert, auch wenn das Sortierfeld eine Zahl ist. In manchen Fällen müssen Sie also entsprechend anpassen.

Zum Beispiel, wenn meine Daten waren:

%Vor%

Dann kann ich nach dem Feld Rangname anstelle des Feldes Name gruppieren. Es wird das Feld Name im Gruppenkopf angezeigt, aber nach dem Feld Rang sortiert. In diesem Fall wird Bob als erste Gruppe angezeigt, obwohl Alice zuerst alphabetisch war. Dies funktioniert ähnlich wie der von Ihnen erwähnte Abstand.

    
bts 07.06.2013, 15:02
quelle
3

Kendos Gruppierung sortiert alle Elemente im Array nach einem gegebenen Feld (z. B. fooBar ) und iteriert dann die sortierten Elemente. Kurz gesagt, mit Pseudocode:

%Vor%

Da das sortierte Array die Gruppierung durchführen muss, ist es schwierig, die Sortierung zu ändern. Ich habe Code erstellt, um die interne Funktion groupBy() zu überschreiben, was mir erlaubt, die gruppierten Ergebnisse zu sortieren, aber ich mag:

%Vor%

Rufen Sie overrideKendoGroupBy() irgendwann nach dem Laden Ihrer Seite auf. Jetzt implementieren Sie einfach eine SortYourData() Funktion, wobei q.data ein Array von Gruppierungen ist und descriptor.dir ist "asc" oder "desc" . q.data[n] hat ein items -Array, das die Elemente aus Ihrer ursprünglichen Datenquelle enthält, die in der n -ten Gruppierung enthalten sind.

Hinweis: Diese Lösung funktioniert nur, wenn Sie kein Paging verwenden. Die Seiten werden aufgebrochen, bevor die Gruppierung angewendet wird. Daher sind alle Wetten deaktiviert, wenn Ihre Daten mehrere Seiten umfassen.

    
djs 09.12.2015 21:26
quelle
0

Benutzerdefinierte Sortierrichtung, wenn die Gruppierung nicht vom Grid unterstützt wird - die Gruppen werden auf die gleiche Weise wie die Spalte sortiert (bei Verwendung der Client-Sortierung), wenn keine Gruppierung vorhanden ist. Die Sortierrichtung entspricht der Standardsortierung in JavaScript.

    
Petur Subev 05.05.2013 18:30
quelle
0

Sie können eine Abfrage hinzufügen, nachdem Sie die Datenquelle definiert haben und dies scheint zu funktionieren

%Vor%

Wo verwandt ist der Name der Datenquelle

    
pat capozzi 28.04.2015 17:22
quelle
0

Probieren Sie AddDescending und AddAscending aus, siehe Beispiele unten

%Vor%

Ссылка

    
Yan 25.02.2016 18:30
quelle
0

Hier ist eine einfache Problemumgehung dafür. Nicht schön, aber einfach genug ...

Fügen Sie einfach Leerzeichen vor den Text ein, um die gewünschte Sortierung zu erreichen

%Vor%

Im obigen Beispielcode Gruppe 2 wird vor Gruppe 1 wegen eines führenden Platzes angezeigt.

    
RRR 05.04.2017 06:15
quelle
-2

Verwenden Sie Spalten, um die Reihenfolge der Spalten anzugeben, sobald Sie Ihre Daten wie

haben %Vor%     
GodsCrimeScene 03.05.2013 20:15
quelle

Tags und Links