Ich versuche, den benutzerdefinierten Sortiermechanismus in Datatables
zu verstehen. Was ich versuche, ist das Sortieren einer Spalte nach ihrem Wert und dem Wert anderer Spalten (die eine Gruppe enthalten), um eine gruppenweise Sortierung zu erhalten.Benutzerdefinierte (Gruppen-) Sortierung der Spalte in Datatables
Um dies zu tun, kam ich auf der anderen Sortier Plugin: https://datatables.net/plug-ins/sorting/
Nur als Beispiel (könnte eine andere sein) hatte ich einen Blick auf die „anti-das“ Plug-In. Um es zu actvate ich hinzugefügt:
targets = "_all", type = "anti-the"
zum columnDefs
und verwendet
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"anti-the-pre": function (a) {
console.log("pre");
return a.replace(/^the /i, "");
},
"anti-the-asc": function (a, b) {
console.log("asc");
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"anti-the-desc": function (a, b) {
console.log("desc");
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
Der Plan ist, diese drei Funktionen zur Anpassung an die gewünschte gruppiert Sortierung zu erhalten.
Interessanter „pre“ sich auf die Konsole jedesmal gedruckt werden, wenn die Tabellenüberschrift (und der Tisch gegriffen wird) angeklickt wird. Ich erwartete, dass "asc" und "desc" ebenfalls gedruckt werden (in alternierender Reihenfolge), aber nichts wird gedruckt, warum?
Ist dies der richtige Ansatz, um das gewünschte Ergebnis der gruppierten Sortierung zu erhalten oder muss ich meinen eigenen "orderDataType" definieren, um dies zu erreichen?
Edit:
Nur um die Dinge etwas klarer: Nehmen wir an, ich habe eine Tabelle, die Informationen/Spalten über „Abteilung“ enthalten und „Boden“ Beim Sortieren „Boden“ Ich d wie es für jede Abteilung
vor dem sortieren sortiert für Boden werden: | Abteilung | Boden
|
| IT | 2 |
| IT | 1 |
| Verkauf | 1 |
| Verkauf | 2 |
nach Klick auf header ("Boden" -> auf)
| IT | 1 |
| IT | 2 |
| Verkauf | 1 |
| Verkauf | 2 |
Klick wieder (ab)
| IT | 2 |
| IT | 1 |
| Verkauf | 2 |
| Verkauf | 1 |
in den Daten Ich habe da keine Mischung zwischen Gruppen SIND (hier: Abteilungen) -> Zeilen für die gleiche Abteilung miteinander
Wenn Sie beide Spalten anzeigen, können Ihre Benutzer zwei Spalten bestellen, indem Sie einfach die Umschalttaste drücken und auf die Kopfzeile klicken. In diesem Fall ist keine benutzerdefinierte Sortierung erforderlich. – DKSan