Otrzymuję ten błąd z następującymi informacjami:
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
Linia powyżej odnosząca się do (funkcja anonimowa) @ VM3156: 180 to:
TASKLISTGRID = $("#TASK_LIST_GRID").DataTable({
data : response,
columns : columns.AdoptionTaskInfo.columns,
paging: true
});
Więc zgaduję, że w tym miejscu zawodzi.
Istnieje element HTML ID:
<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>
Istnieją również kolumnys.AdoptionTaskInfo.columns i tablice obiektów odpowiedzi. Nie wiem, jak usunąć błędy. Wszelkie sugestie będą pomocne.
javascript
jquery
node.js
datatables
Rekrut
źródło
źródło
.style
w swoim kodzie. Próbujesz uzyskać dostęp do tej właściwości niezdefiniowanej zmiennej. Możesz stamtąd debugować.Odpowiedzi:
Problem w tym, że liczba tagów <th> musi odpowiadać liczbie kolumn w konfiguracji (tablica z kluczem „kolumny”). Jeśli jest mniej tagów <th> niż określonych kolumn, pojawia się ten nieco tajemniczy komunikat o błędzie.
(poprawna odpowiedź jest już obecna jako komentarz, ale powtarzam ją jako odpowiedź, więc łatwiej ją znaleźć - nie widziałem komentarzy)
źródło
MOŻLIWE PRZYCZYNY
th
elementów w nagłówku lub stopce tabeli różni się od liczby kolumn w treści tabeli lub zdefiniowanej za pomocącolumns
opcji.th
elementu w nagłówku tabeli.columnDefs.targets
opcji.ROZWIĄZANIA
th
elementów w nagłówku lub stopce tabeli odpowiada liczbie kolumn zdefiniowanych wcolumns
opcji.colspan
atrybutu w nagłówku tabeli, upewnij się, że masz co najmniej dwa wiersze nagłówka i jeden unikalnyth
element dla każdej kolumny. Aby uzyskać więcej informacji, zobacz nagłówek Complex .columnDefs.targets
opcji, upewnij się, że indeks kolumn liczony od zera odwołuje się do istniejących kolumn.SPINKI DO MANKIETÓW
Aby uzyskać więcej informacji, zobacz jQuery DataTables: Typowe błędy konsoli JavaScript - TypeError: Cannot read property „style” of undefined, aby uzyskać więcej informacji.
źródło
Powiedziałeś, że wszelkie sugestie będą pomocne, więc obecnie rozwiązałem mój problem z danymi „nie można odczytać stylu” właściwości o niezdefiniowanym ”, ale mój problem polegał w zasadzie na użyciu niewłaściwych indeksów w
columnDefs
sekcji fazy inicjowania tabeli danych . Mam 9 kolumn i indeksy to 0, 1, 2, .., 8 ale używałem indeksów dla 9 i 10 więc po naprawieniu błędnego indeksu usterka zniknęła. Mam nadzieję, że to pomoże.Krótko mówiąc, musisz obserwować liczbę kolumn i indeksy, jeśli wszędzie są spójne.
Kod błędu:
Naprawiono kod:
źródło
Miałem ten problem, kiedy ustawiłem
colspan
w nagłówku tabeli. Więc mój stół był:Potem raz zmieniam to na:
Wszystko działało dobrze.
źródło
Upewnij się, że w danych wejściowych
response[i]
iresponse[i][j]
nie maundefined
/null
.Jeśli tak, zamień je na „”.
źródło
Może się to również zdarzyć podczas rysowania nowej (innej) tabeli. Rozwiązałem to, usuwając najpierw poprzednią tabelę:
$("#prod_tabel_ph").remove();
źródło
Rozwiązanie jest dość proste.
Uwaga : column: columns.AdoptionTaskInfo.columns ma co najmniej jedną kolumnę niezdefiniowaną w nagłówku tabeli
źródło
Co zabawne, otrzymałem następujący błąd, ponieważ o jedną / tę parę za dużo i nadal Google skieruje mnie tutaj. Zostawię to zapisane, aby ludzie mogli to znaleźć.
źródło
W moim przypadku dwukrotnie aktualizowałem datatable po stronie serwera i daje mi ten błąd. Mam nadzieję, że to komuś pomoże.
źródło