2011-01-01 21 views
11

hola estoy teniendo un problema con filas agregadas dinámicamente a tablesorter jQuery,problema tablesorter jQuery con filas añadidas dinámicas

tengo que añadir una fila en el principio de la tabla, por defecto el tablesorter funciona bien, pero después de la fila es agregada, la tabla ordenada solo ordena usando las filas anteriores quiero decir que la nueva fila no está incluida en el proceso de clasificación, la nueva fila tiene algunos, pero no todos, campos en blanco, ¿alguna solución?

Respuesta

20

El sitio web de tablesorter ofrece detalles de cómo hacer esto, en: Appending table data with Ajax. El código se reproduce a continuación:

$(document).ready(function() { 
    $("table").tablesorter(); 
    $("#ajax-append").click(function() { 
     $.get("assets/ajax-content.html", function(html) { 
      // append the "ajax'd" data to the table body 
      $("table tbody").append(html); 
      // let the plugin know that we made a update 
      // updateAll ensures sorting is updated as well 
      $("table").trigger("updateAll"); 
      // set sorting column and direction, this will sort on the first and third column 
      var sorting = [[2, 1], [0, 0]]; 
      // sort on the first column 
      $("table").trigger("sorton", [sorting]); 
     }); 
     return false; 
    }); 
}); 
+0

lo he probado y no funcionó, y no estoy usando ninguna llamada ajax, estoy haciendo la fila clonando una fila existente en la tabla podría ser esta causa ¿un problema? – Shaheer

+1

¡fijo !, solo era necesario agregar, $ ('su tabla'). Trigger ("appendCache"); – Shaheer

+0

@Shaheer: qué línea de la secuencia de comandos anterior debería agregar $ ('su tabla'). Trigger ("appendCache") para que funcione – learnJQueryUI

1

¿Intentó desarmar el tablesorter e inicializar una nueva sesión de tablesorter?

Como el formador de tablas no sabe que ha agregado las filas nuevas, ¿por qué no ha establecido un nuevo clasificador de tablas en la tabla?

+0

tu idea suena bien, voy a probar esto – Shaheer

-1

La única forma en que pude hacerlo funcionar fue regenerar toda la mesa (eliminarla y luego crear de nuevo).

$(".resultTablePlaceholder").html('').html('<table id="resultTable">...</table>'); 
$("#resultTable").tablesorter(); 
-1

Estas líneas funcionó perfectamente para mí. Después de asignar HTML simplemente active la función de actualización de la tabla.

$('#tblID').html(str); 
$("#tblID").trigger("update"); 

donde #tblID es el ID de mesa y str es el HTML de filas de la tabla asignadas a la mesa.

Cuestiones relacionadas