Ich habe gerade angefangen, Slickgrid für ein Projekt auszuprobieren, an dem ich arbeite, und ich bin sehr beeindruckt von seiner Leistung . Eine Anforderung, die ich habe, ist die Sortierung nach mehreren Spalten. Ich habe meinen Kopf nicht vollständig in Slickgrid um die Datenansicht gewickelt, also vermisse ich vielleicht etwas Offensichtliches, aber gibt es eine Möglichkeit, ein Gitter auf mehreren Spalten zu sortieren? Auch wenn die Benutzeroberfläche nicht mehr als eine Sortierung durchführen kann, würde ich gerne eine Funktion mit den Spalten in der Reihenfolge plus aufsteigend oder absteigend aufrufen können. Ich konnte dies mit Datatables tun, aber es hat keine Gruppierung (eine weitere Voraussetzung für das Projekt) ).
Im schlimmsten Fall werde ich die Sortierung auf dem Server vornehmen und den Inhalt statisch sortiert zum Client zurückgeben.
Sie können Sortiervergleiche verketten, um mehrere Spalten zu sortieren. Anstatt
zu machen %Vor%Sie können
tun %Vor%oder einfach nur inline implementieren.
Soweit die Sortierreihenfolge in der Benutzeroberfläche widergespiegelt wird, können Sie die Sortierindikatoren anwenden, indem Sie "headerCssClass" in den Spaltendefinitionen festlegen, nach denen Sie sortieren, und die Pfeile anzeigen lassen (oder sonst geben Sie Sortierspalten an.)
Hier gibt es ein Beispiel, das die Option 'multiColumnSort' verwendet.
Ich glaube nicht, dass es funktioniert, weil args.sortCols immer ein Array von 1 ist.
[Bearbeiten] Damit es funktioniert, muss ich Shift halten, bevor ich auf eine Spaltenüberschrift klicke (nicht sehr intuitiv IMHO) Siehe auch: Ссылка
Ich habe es für DataView mit mehrspaltiger Sortierung in den Weg gebracht. War am einfachsten zu verstehen. Dies ist aus dem Beispiel in GitHub, außer dass ich einen weiteren Parameter für dataView.sort () übergeben muss. Es kann immer wahr sein, und Sie können auf die Sortierrichtung in Ihrer Funktion achten.
%Vor%Nur für den Fall, dass es jemandem hilft.
Ich habe eine Weile damit verbracht, das Problem mit der Datenansicht zu lösen (ohne Shift-Key-Shenanigans) und ich denke, ich habe den Weg dazu gefunden.
Verwenden Sie die einzelne Spaltensortierung {multiColumnSort: false}
und speichern Sie die Sortierargumente in einem Abschluss. Auf den vorherigen Vergleich zurückstellen, wenn die Felder gleich sind.
merkt sich alle vorherigen Bestellungen. funktioniert einfach. funktioniert wie erwartet.
Tags und Links javascript jquery sorting slickgrid