Estou recebendo este erro com o seguinte:
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
A linha acima referindo-se a (função anônima) @ VM3156: 180 é:
TASKLISTGRID = $("#TASK_LIST_GRID").DataTable({
data : response,
columns : columns.AdoptionTaskInfo.columns,
paging: true
});
Portanto, estou supondo que é aqui que está falhando.
O elemento HTML ID existe:
<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>
Além disso, as matrizes de objeto columns.AdoptionTaskInfo.columns e resposta existem. Não tenho certeza de como depurar o que está errado .. Todas as sugestões serão úteis ..
javascript
jquery
node.js
datatables
Novato
fonte
fonte
.style
em seu código. Você está tentando acessar essa propriedade de uma variável indefinida. Você pode depurar a partir daí.Respostas:
O problema é que o número de tags <th> precisa corresponder ao número de colunas na configuração (a matriz com a chave "colunas"). Se houver menos tags <th> do que colunas especificadas, você receberá esta mensagem de erro um pouco enigmática.
(a resposta correta já está presente como um comentário, mas estou repetindo como uma resposta para ficar mais fácil de encontrar - não vi os comentários)
fonte
CAUSAS POSSÍVEIS
th
elementos no cabeçalho ou rodapé da tabela difere do número de colunas no corpo da tabela ou definido porcolumns
opção.th
elemento no cabeçalho da tabela.columnDefs.targets
opção.SOLUÇÕES
th
elementos no cabeçalho ou rodapé da tabela corresponda ao número de colunas definidas nacolumns
opção.colspan
atributo no cabeçalho da tabela, certifique-se de ter pelo menos duas linhas de cabeçalho e umth
elemento exclusivo para cada coluna. Consulte Cabeçalho complexo para obter mais informações.columnDefs.targets
opção, certifique-se de que o índice da coluna com base em zero se refere às colunas existentes.LINKS
Consulte jQuery DataTables: Erros comuns do console JavaScript - TypeError: Não é possível ler a propriedade 'style' de undefined para obter mais informações.
fonte
Você disse que qualquer sugestão seria útil, então, atualmente, resolvi meu problema de DataTables "não consigo ler a propriedade 'estilo' de indefinido", mas meu problema era basicamente usar índices errados na
columnDefs
seção da fase de iniciação da tabela de dados . Eu tenho 9 colunas e os índices são 0, 1, 2, .., 8, mas eu estava usando índices para 9 e 10, então depois de consertar o problema de índice errado, a falha desapareceu. Eu espero que isso ajude.Resumindo, você deve observar a quantidade de colunas e índices se consistentes em todos os lugares.
Código Buggy:
Código Fixo:
fonte
Eu tive esse problema quando configurei
colspan
no cabeçalho da tabela. Então minha mesa era:Então, quando eu mudar para:
Tudo funcionou muito bem.
fonte
Certifique-se de que em seus dados de entrada,
response[i]
eresponse[i][j]
, não sãoundefined
/null
.Nesse caso, substitua-os por "".
fonte
Também pode acontecer ao desenhar uma nova (outra) mesa. Resolvi isso removendo primeiro a tabela anterior:
$("#prod_tabel_ph").remove();
fonte
A solução é bem simples.
Nota : as colunas: columns.AdoptionTaskInfo.columns tem pelo menos uma coluna não definida no cabeçalho da tabela
fonte
Engraçado, eu estava recebendo o seguinte erro por ter um quinto par a mais e ainda assim o Google me direcionou aqui. Vou deixar anotado para que as pessoas possam encontrá-lo.
fonte
No meu caso, eu estava atualizando a tabela de dados do lado do servidor duas vezes e isso me deu este erro. Espero que ajude alguém.
fonte