Recibo este error con lo siguiente:
jquery.dataTables.js:4089 Uncaught TypeError: Cannot read property 'style' of undefined(…)
_fnCalculateColumnWidths @ jquery.dataTables.js:4089
_fnInitialise @ jquery.dataTables.js:3216
(anonymous function) @ jquery.dataTables.js:6457
each @ jquery-2.0.2.min.js:4
each @ jquery-2.0.2.min.js:4
DataTable @ jquery.dataTables.js:5993
$.fn.DataTable @ jquery.dataTables.js:14595
(anonymous function) @ VM3329:1
(anonymous function) @ VM3156:180
l @ jquery-2.0.2.min.js:4
fireWith @ jquery-2.0.2.min.js:4
k @ jquery-2.0.2.min.js:6
(anonymous function) @ jquery-2.0.2.min.js:6
La línea anterior que hace referencia a (función anónima) @ VM3156: 180 es:
TASKLISTGRID = $("#TASK_LIST_GRID").DataTable({
data : response,
columns : columns.AdoptionTaskInfo.columns,
paging: true
});
Así que supongo que aquí es donde está fallando.
Existe el elemento ID HTML:
<table id="TASK_LIST_GRID" class="table table-striped table-bordered table-hover dataTable no-footer" width="100%" role="grid" aria-describedby="TASK_LIST_GRID_info">
<thead>
<tr role="row">
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Solution</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Status</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Category</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Type</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Due Date</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Create Date</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Owner</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Comments</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Mnemonic</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Domain</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Approve</th>
<th class="sorting" tabindex="0" aria-controls="TASK_LIST_GRID" rowspan="1" colspan="1">Dismiss</th>
</tr>
</thead>
<tbody></tbody>
</table>
Además, existen las columnas.AdoptionTaskInfo.columns y matrices de objetos de respuesta. No estoy seguro de cómo depurar lo que está mal. Cualquier sugerencia será útil.
javascript
jquery
node.js
datatables
Novato
fuente
fuente
.style
en su código. Estás intentando acceder a esa propiedad de una variable indefinida. Puede depurar desde allí.Respuestas:
El problema es que el número de etiquetas <th> debe coincidir con el número de columnas en la configuración (la matriz con la clave "columnas"). Si hay menos etiquetas <th> que las columnas especificadas, aparece este mensaje de error ligeramente críptico.
(la respuesta correcta ya está presente como comentario, pero la estoy repitiendo como respuesta para que sea más fácil de encontrar; no vi los comentarios)
fuente
POSIBLES CAUSAS
th
elementos en el encabezado o pie de página de la tabla difiere del número de columnas en el cuerpo de la tabla o definido mediante lacolumns
opción.th
elemento en el encabezado de la tabla.columnDefs.targets
opción.SOLUCIONES
th
elementos en el encabezado o pie de página de la tabla coincida con la cantidad de columnas definidas en lacolumns
opción.colspan
atributo en el encabezado de la tabla, asegúrese de tener al menos dos filas de encabezado y unth
elemento único para cada columna. Consulte Encabezado complejo para obtener más información.columnDefs.targets
opción, asegúrese de que el índice de columna de base cero se refiera a las columnas existentes.ENLACES
Consulte jQuery DataTables: errores comunes de la consola de JavaScript - TypeError: no se puede leer la propiedad 'estilo' de indefinido para obtener más información.
fuente
Dijiste que cualquier sugerencia sería útil, por lo que actualmente resolví mi problema de "no se puede leer la propiedad 'estilo' de indefinido" de las tablas de datos, pero mi problema era básicamente usar índices incorrectos en la
columnDefs
sección de la fase de inicio de la tabla de datos . Obtuve 9 columnas y los índices son 0, 1, 2, .., 8 pero estaba usando índices para 9 y 10, así que después de solucionar el problema del índice incorrecto, la falla ha desaparecido. Espero que esto ayude.En resumen, debes observar la cantidad de columnas y los índices si son consistentes en todas partes.
Código de buggy:
Código fijo:
fuente
Tuve este problema cuando configuré el
colspan
encabezado de la tabla. Entonces mi mesa era:Luego, una vez que lo cambio a:
Todo funcionó bien.
fuente
Asegúrese de que en sus datos de entrada
response[i]
yresponse[i][j]
, no seanundefined
/null
.Si es así, reemplácelos con "".
fuente
También puede suceder al dibujar una nueva (otra) tabla. Resolví esto eliminando primero la tabla anterior:
$("#prod_tabel_ph").remove();
fuente
La solución es bastante sencilla.
Nota : columnas: columnas.AdoptionTaskInfo.columns tiene al menos una columna no definida en el encabezado de la tabla
fuente
Curiosamente, recibí el siguiente error por tener un par / ésimo de más y todavía google me dirigió aquí. Lo dejaré escrito para que la gente pueda encontrarlo.
fuente
En mi caso, estaba actualizando la tabla de datos del lado del servidor dos veces y me da este error. Espero que ayude a alguien.
fuente