Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Datatables - nueva fila

Estas en el tema de Datatables - nueva fila en el foro de Frameworks JS en Foros del Web. Buenas tardes: Estoy utilizando el componente Datatables de jquery ( http://datatables.net/ ). Para alimentar la tabla, le paso los datos al componente mediante un array ...
  #1 (permalink)  
Antiguo 16/01/2013, 10:34
 
Fecha de Ingreso: noviembre-2007
Mensajes: 154
Antigüedad: 16 años, 5 meses
Puntos: 2
Pregunta Datatables - nueva fila

Buenas tardes:

Estoy utilizando el componente Datatables de jquery (http://datatables.net/).

Para alimentar la tabla, le paso los datos al componente mediante un array JS, que asigno mediante las opciones: aaData y defino mediante aoColumns

Tengo que agregarle la funcionalidad de añadir nuevas filas en blanco, para insertarla posteriormente mediante inline editing. Al generar la nueva fila me muestra el siguiente error:
DataTables warning (table id = 'nombre-tabla'): Requested unknown parameter 'ConceptoBase' from the data source for row 3

El código es el siguiente:
Carga de Datos
Código Javascript:
Ver original
  1. function cargarDatosTabla(nombreTabla, arrDatos) {
  2.         $("#" + nombreTabla).dataTable({
  3.             "oLanguage": {
  4.                 "sUrl": "/_layouts/3082/JS/DataTable/dataTables.spanish.txt"
  5.             },
  6.             "bPaginate": false,
  7.             "bFilter": false,
  8.             "aaData" : arrDatos,
  9.             "aoColumns" : [
  10.                 {
  11.                       "sTitle"      : "Concepto Base"
  12.                     , "mDataProp"   : "ConceptoBase"
  13.                 },[...]


Botón Añadir
Código Javascript:
Ver original
  1. $(".btn-anadir").on("click", function(e) {
  2.     e.preventDefault();
  3.     $(this).attr('disabled', 'disabled');
  4.  
  5.     var oTable = $(this).parent().next('div').children('table.tb-datos').dataTable();
  6.  
  7.     var aiNew = oTable.fnAddData(['', '', '', '', '', '',
  8.                 '<a class="txt-center display-block" href=""><img src="/_layouts/3082/JS/DataTable/images/edit.png" alt="editar" title="editar" /></a>',
  9.                 '<a class="txt-center display-block delete" href=""><img src="/_layouts/3082/JS/DataTable/images/delete.png" alt="borrar" title="borrar" /></a>']);
  10.     var nRow = oTable.fnGetNodes(aiNew[0]);
  11.     editRow(oTable, nRow);
  12.     nEditing = nRow;
  13. });

El error salta al completar la variable aiNew.

¿Sabe alguien cómo podría solucionarlo o si me toca cambiar de estrategia?

Muchas gracias.

Saludos.
  #2 (permalink)  
Antiguo 17/01/2013, 14:18
 
Fecha de Ingreso: noviembre-2012
Ubicación: Caracas - Venezuela
Mensajes: 116
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: Datatables - nueva fila

por lo general este error ocurre cuando tienes declaradas mas <th> (o menos) comparados con la cantidad de valores que estás trayendo con el query de la BD revisa ese detalle
  #3 (permalink)  
Antiguo 18/01/2013, 08:12
 
Fecha de Ingreso: noviembre-2007
Mensajes: 154
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Datatables - nueva fila

Buenas tardes, muchas gracias angelsds, el problema es que la fila tiene más 'columnas' que datos, porque tengo que incluir una fila en blanco con sus respectivos botones de salvar y eliminar. Por eso, al generar el 'aiNew', da el error.

Esto me ha funcionado, antes de definir las columnas mediante 'aoColumns' y pintando directamente los <thead><tr><th>..., pero me daba problemas con la carga de datos. Por este motivo tuve que recurrir al uso de aoColumns.

Etiquetas: datatables, jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:15.