2011-03-22 42 views
9

¿Hay algún evento que se active cuando una tabla de datos haya finalizado la representación? es decir, cuando puedo comenzar a modificar el resultado HTML. Estoy tratando de agregar una fila de <select> sobre mis encabezados de columna, como se muestra en el ejemplo en http://www.datatables.net/examples/api/multi_filter_select.htmlJQuery Datatables ready event?

No he podido hacer que esto funcione con mi script. Mi origen de datos es una matriz de JavaScript como en http://www.datatables.net/examples/data_sources/js_array.html y tengo la sensación de que la selección de múltiples filtros (ver el enlace anterior) no funciona en conjunción con esto.

Básicamente, me sale nada cuando se itera sobre los encabezados de la tabla utilizando la siguiente:

$('table#id thead tr th').each(function() { ... }) 

creo que es debido a que el conjunto de elementos pasado a each está vacía, pero estoy 100% seguro de que el selector es correcta y he verificado esto usando FireQuery.

He encontrado este http://www.datatables.net/examples/advanced_init/events_post_init.html que dice tener información sobre eventos posteriores al inicio, pero no parece ser lo que quiero.

¿Alguien se ha encontrado con esto antes y ha encontrado una solución? ¡Gracias!

Respuesta

10

fnInitComplete

http://datatables.net/usage/callbacks He intentado utilizar esto y hace que los cuadros de selección en el pie de página.

Pero cuando selecciono algo en el cuadro de lista y el uso de fnFilter me sale el mensaje de error

TypeError no detectada: No se puede llamar al método 'reemplazar' de indefinido

Probé fnFilter mediante un clic de botón donde consigo una mensaje TypeError no detectada: no se puede leer la propiedad 'nTr' de la indefinida

+4

Creo que desea fnDrawCallback en lugar de fnInitComplete - fnDrawCallback se activa después de que se procesa HTML. – nothingisnecessary

7

yo usaría "fnDrawCallback" (ver: https://www.datatables.net/usage/callbacks)

$(document).ready(function() { 
    $('#example').dataTable({ 
     "fnDrawCallback": function(oSettings) { 
      // Your function(s); 
     } 
    }); 
}); 

Uso esta devolución de llamada para vincular eventos a elementos que han sido creados por la tabla de datos.