Mi tabla de productos está ordenada con initialSort
por el mes de lanzamiento del producto de forma ascendente. También agrupé mis productos por un nombre en clave que está determinado por la URL de respuesta ajax json y los renombré a nombres legibles con una función groupBy
. Ahora quiero ordenar mis grupos individualmente sin perder la ordenación de meses en mis grupos. ¿Cómo es eso posible?
var table = new Tabulator("#tableid", { ajaxURL: url, layout: "fitColumns", groupBy: "codename", groupBy:function(data){ if (data.codename == "X123") { return "Productname for X123"; } if (data.codename == "X124") { return "Productname for X124"; } … … }, initialSort:[ {column:"month", dir:"asc"} ], columns: [ { title: "Product", field: "codename"}, { title: "Month", field: "month"}, … … … ] });
No estoy exactamente seguro de lo que quiere decir con "ordenar mis grupos individualmente", pero ¿es esto lo que está buscando?
https://jsfiddle.net/r3f7pysw/
initialSort:[ {column:"month", dir:"asc"}, {column:"codename", dir:"asc"} ],
NOTA (1): no creo que desee devolver esa cadena para su agrupación, cuando parece que es solo la cadena de visualización del encabezado, y todavía va a estar clasificando en "nombre en clave" (porque la cadena es la misma con un cambio al final, que realmente toma un "poco" de tiempo para comparar cada vez). Pero tal vez lo hagas...
NOTA (2): agregar los segundos initialSort es como Ctrl-Click en la clasificación para ordenar por múltiples criterios. Entonces, si hace un solo clic en Mes, recuerde que destruye la matriz de clasificación actual y la establece solo en Mes.