Eu tenho um problema com Datatables
. Eu também passei por esse link que não produziu nenhum resultado. Incluí todos os pré-requisitos em que estou analisando dados diretamente no DOM. Por favor, ajude-me a corrigir esse problema.
Roteiro
$(document).ready(function() {
$('.viewCentricPage .teamCentric').dataTable({
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"bPaginate": false,
"bFilter": true,
"bSort": true,
"aaSorting": [
[1, "asc"]
],
"aoColumnDefs": [{
"bSortable": false,
"aTargets": [0]
}, {
"bSortable": true,
"aTargets": [1]
}, {
"bSortable": false,
"aTargets": [2]
}],
});
});
jquery
console
datatables
Thriveni
fonte
fonte
Respostas:
FYI datatables requer uma mesa bem formada. Ele deve conter tags
<thead>
e<tbody>
, caso contrário, gera esse erro. Verifique também se todas as suas linhas, incluindo a linha do cabeçalho, têm o mesmo número de colunas.O seguinte irá gerar erro (não
<thead>
e<tbody>
tags)O seguinte também gerará um erro (número desigual de colunas)
Para mais informações, leia mais aqui
fonte
Uma causa comum de
Cannot read property 'fnSetData' of undefined
é o número incompatível de colunas, como neste código incorreto:Enquanto o seguinte código com um
<th>
por<td>
(o número de colunas deve corresponder) funciona:O erro também aparece ao usar um cabeçote bem formado com um colspan, mas sem uma segunda linha.
Para uma tabela com 7 colunas, o seguinte não funciona e vemos "Não é possível ler a propriedade 'mData' de indefinida" no console javascript:
Enquanto isso funciona:
fonte
tr
para incluir todos osth
elementos. Basta deixar aqui para o caso de alguém achar isso útil!th
coluna na minhathead
, que estava causando o erro. A resposta de Nathan Hanna também parece indicar esse problema.th
no meuthead
também!colspan
interpretação ainda é um problema. Eu tive que colocar em brancoth
e nãocolspan
para me livrar dos erros. Mas que simples adição para obter essa funcionalidade. BTW: Rails 5.1.5, Bootstrap 4.0.0. Acabei de adicionar as folhas de estilo e CDNs de script e$(document).ready…
à página.Eu tive esse mesmo problema ao usar dados DOM em uma exibição do Rails criada por meio do gerador de andaimes. Por padrão, a visualização omite
<th>
elementos das três últimas colunas (que contêm links para mostrar, ocultar e destruir registros). Eu descobri que se eu adicionasse títulos para essas colunas em um<th>
elemento dentro do<thead>
que ele corrigisse o problema.Não posso dizer se esse é o mesmo problema que você está tendo, pois não consigo ver seu html. Se não for o mesmo problema, você pode usar o depurador chrome para descobrir em qual coluna está incorreto clicando no erro no console (que o levará ao código em que está falhando) e, em seguida, adicionando uma condição ponto de interrupção (em
col==undefined
). Quando ele pára, você pode verificar a variáveli
para ver em qual coluna ela está atualmente e que pode ajudá-lo a descobrir o que há de diferente nessa coluna em relação às outras. Espero que ajude!fonte
colspan="3"
mas obtive erros (foi assim que acabei nesta página). Eu brinquei um pouco, mas finalmente desisti e criei trêsth
elementos e com o primeiro "Detalhes" e deixei os dois últimos em branco. A brincadeira sugeriu que o dataTables tem problemas com o colspan como o último da série. A correção do OP é ímpar, pois o número de colunas não se soma. Eu não tinha nenhuma condição na mesa, comoorder
ousortable
. Eu os adicionei depois que funcionei.Tendo
<thead>
e<tbody>
com os mesmos números<th>
e<td>
resolvido o meu problema.fonte
Isso também pode ocorrer se você tiver argumentos de tabela para coisas como as
'aoColumns':[..]
que não correspondem ao número correto de colunas. Problemas como esse geralmente podem ocorrer ao copiar o código de colar de outras páginas para iniciar rapidamente sua integração com as tabelas de dados.Exemplo:
Isso não vai funcionar:
Mas isso vai funcionar:
fonte
Mais um motivo para isso acontecer é por causa do parâmetro de colunas na inicialização do DataTable.
O número de colunas deve corresponder aos cabeçalhos
Eu tinha 7 colunas
fonte
Você tem que remover o seu
colspan
e o número deth
etd
necessidades para corresponder.fonte
Dicas 1:
Consulte este link para obter algumas idéias:
https://datatables.net/forums/discussion/20273/uncaught-typeerror-cannot-read-property-mdata-of-undefined
Dicas 2:
<thead></thead>
&<tbody></tbody>
tagsstyle='display:none'
mesma propriedade aplica-se a ambos, cabeçalho e corpo.<td>, <tr>
problemasfonte
no meu caso, esse erro ocorreu se eu usar tabela sem cabeçalho
fonte
Eu enfrentei o mesmo erro, quando tentei adicionar colspan ao último dia
e resolveu adicionando uma coluna oculta ao final de tr
A explicação para isso é que, por algum motivo, o DataTable não pode ser aplicado à tabela com colspan no último dia, mas pode ser aplicado, se o colspan for usado em qualquer meio.
Esta solução é um pouco hacky, mas mais simples e mais curta do que qualquer outra solução que encontrei.
Espero que ajude alguém.
fonte
Problema ligeiramente diferente para mim das respostas dadas acima. Para mim, a marcação HTML estava boa, mas uma das minhas colunas no javascript estava ausente e não correspondia ao html.
ie
Meu Script: -
fonte
Eu tinha uma tabela gerada dinamicamente, mas mal formada, com um erro de digitação. Copiei uma
<td>
etiqueta dentro de outra<td>
por engano. Minha contagem de colunas corresponde. Eu tinha<thead>
e<tbody>
tags. Tudo correspondeu, exceto por este pequeno erro que eu não notei por um tempo, porque minha coluna tinha muitas tags de link e imagem.fonte
Eu havia encontrado o mesmo problema, mas estava gerando tabela dinamicamente . No meu caso, minha mesa estava faltando
<thead>
e<tbody>
tags.aqui está o meu trecho de código, se ajudou alguém
fonte
Além de inconsistentes e números, um item ausente nas partes das colunas dos scripts de dados também pode causar isso. Corrigir isso corrigia minha barra de pesquisa de tabelas de dados.
Eu estou falando sobre essa parte;
Eu lutei com esse erro até me indicar que essa parte tinha menos um "nulo" do que minha contagem total de threads.
fonte
Este me deixou louco - como renderizar uma DataTable com êxito em uma exibição do .NET MVC. Isso funcionou:
Script no arquivo JS:
fonte
No meu caso, e usando o ASP.NET GridView, UpdatePanel e com DropDownList (com o plugin Chosen, onde redefini o valor para zero usando uma linha Javascript), recebi esse erro e tentei de tudo sem esperança por dias. O problema era que o código da minha lista suspensa no código por trás era o seguinte e quando seleciono um valor duas vezes para aplicar sua ação às linhas de grade selecionadas, recebo esse erro. Pensei por dias que é um problema de Javascript (novamente, no meu caso) e, finalmente, a correção estava dando zero para o valor de drowpdown com o processo de atualização:
A culpa foi minha:
fonte
Você precisa agrupar suas linhas nos
<thead>
cabeçalhos das colunas e<tbody>
nas linhas. Verifique também se você possui o número correspondente. de cabeçalhos de coluna<th>
como você faz para otd
fonte
Eu posso estar surgindo pelo campo aoColumns. Como indicado AQUI
Então você tem que adicionar campos como na tabela Columns
fonte
no meu caso, a causa desse erro é que eu tenho 2 tabelas que têm o mesmo nome de ID com estrutura de tabela diferente, devido ao meu hábito de copiar e colar o código da tabela. verifique se você tem um ID diferente para cada tabela.
fonte
Eu encontrei alguma "solução".
Este código não funciona:
Mas está tudo bem:
Eu acho que o problema é que o último TH não pode ter o atributo colspan.
fonte