2008-10-20 24 views
12

Tengo la tabla clásica con registros expandibles y contraíbles que, de expandirse, muestran varios subregistros (como nuevos registros en la misma tabla padre, no en una tabla div/secundaria). También estoy usando tablesorter y me encanta.Obteniendo jQuery tablesorter para trabajar con filas de tabla ocultas/agrupadas

El problema es que tablesorter no mantiene registros secundarios ampliados junto a los registros principales. Los clasifica como si fueran de alto nivel. Así que cada vez que la tabla se ordena por columna, las filas secundarias terminan por todas partes y no donde yo las quiero.

¿Alguien sabe de una buena extensión de la configuración de tablesorter o específica que permite que tablesorter mantenga agrupadas las filas secundarias junto con la fila principal incluso después de la clasificación? ¿O tengo que renunciar a tablesorter a favor de alguna otra API o comenzar el feo proceso de escribir mi propio widget? ¿Debería evitar el enfoque basado en css de ocultar filas individuales de la tabla para representar filas colapsar?

Respuesta

16

Si desea mantener tablesorter, no es un mod que he utilizado para este propósito available here

Después de su inclusión, que hacer su segunda fila (niño ampliable) tiene la clase de "ampliar el niño" , y tablesorter sabrá mantener la fila emparejada con su padre (fila anterior).

+0

gracias me había encontrado que mod, pero no vio ninguna documentación sobre qué hacer con él. Has encontrado el único recurso en Google, como yo, que puede hacer esto, pero es evidente que lo entendiste mejor que yo. He escrito mi propia y fea solución. – Josh

+0

hola Adam, acabo de encontrar esta publicación recientemente. Publiqué una nueva pregunta que me preguntaba si podrías echarle un vistazo a: http://stackoverflow.com/questions/9240905/ajax-appended-collapsible-rows-to-a-jquery-javascript-tablesorter-table-lack -nee La conclusión es que mis filas adjuntas AJAX no obtienen los atributos que las hacen plegables. Me pregunto cómo asegurarse de que tablesorter.js anexe apropiadamente el DOM sobre AJAX. gracias, -tim –

1

Un arreglo feo en lugar de usar lo anterior implica especificar la clase parentId css y la clase childId css para filas primarias y secundarias, y luego usar un widget para reajustar. Solo en caso de que alguien más se encuentre con este problema. Claramente, no es el mejor código, ¡pero funciona para mí!

$("tbody tr[class^='parent']", table).each(function() { 
$(this).after($("tbody tr[class^='child"+$(this).attr("class").substring(6)+"']", table)); 
}); 
Cuestiones relacionadas