Mam problem z Datatables
. Przejrzałem również ten link, który nie przyniósł żadnych rezultatów. Uwzględniłem wszystkie wymagania wstępne, podczas których analizuję dane bezpośrednio w DOM. Uprzejmie pomóż mi rozwiązać ten problem.
Scenariusz
$(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
źródło
źródło
Odpowiedzi:
FYI DataTables wymaga dobrze uformowany tabeli. Musi zawierać
<thead>
i<tbody>
tagi, w przeciwnym razie zgłasza ten błąd. Sprawdź także, czy wszystkie wiersze, w tym wiersz nagłówka, mają tę samą liczbę kolumn.Następujące wyrzuci błąd (nie
<thead>
i<tbody>
tagi)Następujące spowoduje również zgłoszenie błędu (nierówna liczba kolumn)
Aby uzyskać więcej informacji, przeczytaj więcej tutaj
źródło
Częstą przyczyną
Cannot read property 'fnSetData' of undefined
jest niedopasowana liczba kolumn, jak w tym błędnym kodzie:Chociaż działa następujący kod z jednym
<th>
na<td>
(liczba kolumn musi pasować):Błąd pojawia się również przy korzystaniu z dobrze uformowanej thead z colspan, ale bez drugiego rzędu.
W przypadku tabeli z 7 kolumnami poniższe polecenie nie działa i widzimy „Nie można odczytać właściwości„ mData ”niezdefiniowanej” w konsoli javascript:
Podczas gdy to działa:
źródło
tr
użytego do zamknięcia wszystkichth
elementów. Zostawiam to tutaj na wypadek, gdyby ktoś uznał to za przydatne!th
kolumnythead
, która powodowała błąd. Odpowiedź Nathana Hanny również wydaje się wskazywać na tę kwestię.th
w moimthead
też brakuje.colspan
tłumaczenia ustnego wciąż stanowią problem. Musiałem wstawić jakieś pusteth
i nie,colspan
aby pozbyć się błędów. Ale jaki prosty dodatek, aby uzyskać tę funkcjonalność. BTW: Rails 5.1.5, Bootstrap 4.0.0. Właśnie dodałem arkusze stylów i skrypty CDN oraz$(document).ready…
do strony.Miałem ten sam problem przy użyciu danych DOM w widoku Rails utworzonym za pomocą generatora rusztowań. Domyślnie widok pomija
<th>
elementy trzech ostatnich kolumn (które zawierają łącza do pokazywania, ukrywania i niszczenia rekordów). Odkryłem, że jeśli dodam tytuły dla tych kolumn w<th>
elemencie w obrębie<thead>
, to naprawi to problem.Nie mogę powiedzieć, czy masz ten sam problem, ponieważ nie widzę twojego html. Jeśli nie jest to ten sam problem, możesz użyć debugera Chrome, aby dowiedzieć się, w której kolumnie jest on błędny, klikając błąd w konsoli (który przeniesie Cię do kodu, który nie działa), a następnie dodając warunkową punkt przerwania (at
col==undefined
). Kiedy się zatrzyma, możesz sprawdzić zmienną,i
aby zobaczyć, w której kolumnie jest obecnie, co może pomóc Ci dowiedzieć się, co różni się w tej kolumnie od innych. Mam nadzieję, że to pomaga!źródło
colspan="3"
ale dostałem błędy (tak skończyłem na tej stronie). Grzebałem trochę, ale w końcu poddałem się i stworzyłem trzyth
elementy, a pierwszy z nich „Szczegóły”, a ostatnie dwa pozostawiłem puste. Szarpanie się wokoło sugerowało, że dataTables ma problemy z colspan jako ostatnim z serii. Poprawka OP jest nieparzysta, ponieważ liczba kolumn się nie sumuje. Nie miałem żadnych warunków na stole, takich jakorder
lubsortable
. Dodałem je po uruchomieniu.Mając
<thead>
i<tbody>
przy tej samej liczbie<th>
i<td>
rozwiązując mój problem.źródło
Może się to również zdarzyć, jeśli masz argumenty tabeli dotyczące rzeczy,
'aoColumns':[..]
które nie pasują do prawidłowej liczby kolumn. Takie problemy mogą często występować podczas kopiowania wklejania kodu z innych stron w celu szybkiego rozpoczęcia integracji danych.Przykład:
To nie zadziała:
Ale to zadziała:
źródło
Jeszcze jeden powód, dla którego tak się dzieje, to parametr kolumny podczas inicjalizacji DataTable.
Liczba kolumn musi być zgodna z nagłówkami
Miałem 7 kolumn
źródło
Musisz usunąć swój
colspan
oraz liczbęth
itd
należy dopasować.źródło
Wskazówki 1:
Zapoznaj się z tym linkiem, aby uzyskać kilka pomysłów:
https://datatables.net/forums/discussion/20273/uncaught-typeerror-cannot-read-property-mdata-of-undefined
Wskazówki 2:
<thead></thead>
i<tbody></tbody>
tagistyle='display:none'
samej własności dotyczy zarówno nagłówka, jak i ciała.<td>, <tr>
problemuźródło
w moim przypadku ten błąd wystąpił, jeśli korzystam z tabeli bez nagłówka
źródło
Napotkałem ten sam błąd, gdy próbowałem dodać colspan do ostatniego th
i rozwiązał to, dodając ukrytą kolumnę na końcu tr
Wyjaśnienie tego jest takie, że z jakiegoś powodu DataTable nie może być zastosowana do tabeli z colspan w ostatnim, ale może być zastosowana, jeśli colspan jest używany w jakimkolwiek środkowym.
To rozwiązanie jest nieco zuchwałe, ale prostsze i krótsze niż jakiekolwiek inne rozwiązanie, które znalazłem.
Mam nadzieję, że to komuś pomoże.
źródło
Nieco inny problem dla mnie od odpowiedzi podanych powyżej. Dla mnie znaczniki HTML były w porządku, ale brakowało jednej z moich kolumn w javascript i nie pasowało do html.
to znaczy
Mój skrypt: -
źródło
Miałem dynamicznie generowany, ale źle sformatowany stół z literówką. Przez pomyłkę skopiowałem
<td>
tag w innym<td>
. Moja liczba kolumn jest dopasowana. Miałem<thead>
i<tbody>
tagi. Wszystko pasowało, z wyjątkiem tego małego błędu, którego nie zauważyłem przez pewien czas, ponieważ moja kolumna zawierała wiele tagów linków i obrazów.źródło
Napotkałem ten sam problem, ale generowałem tabelę Dynamicznie . W moim przypadku brakowało mojego stołu
<thead>
i<tbody>
znaczników.oto mój fragment kodu, jeśli komuś pomógł
źródło
Oprócz niespójności i liczb, może to również powodować brak elementu w kolumnie kolumn skryptów danych. Korekta, która naprawiła pasek wyszukiwania moich danych.
Mówię o tej części;
Walczyłem z tym błędem, dopóki nie wskazałem, że ta część ma o jeden „zero” mniej niż moja całkowita liczba thead.
źródło
Ten doprowadził mnie do szału - jak z powodzeniem renderować DataTable w widoku .NET MVC. To działało:
Skrypt w pliku JS:
źródło
W moim przypadku i używając ASP.NET GridView, UpdatePanel i DropDownList (z wtyczką Chosen, w której resetuję wartość do zera za pomocą wiersza Javascript), dostałem ten błąd i próbowałem wszystkiego bez nadziei na kilka dni. Problem polegał na tym, że kod mojego menu rozwijanego w kodzie był następujący i kiedy wybieram wartość dwukrotnie, aby zastosować jej akcję do wybranych wierszy siatki, pojawia się ten błąd. Przez kilka dni myślałem, że to problem z Javascriptem (znowu, w moim przypadku), a na koniec poprawka dawała zero dla wartości drowpdown w procesie aktualizacji:
To była moja wina:
źródło
Musisz zawinąć wiersze w
<thead>
nagłówki kolumn i<tbody>
wiersze. Upewnij się również, że masz pasujące nr. nagłówków kolumn,<th>
jak w przypadkutd
źródło
Mogę pochodzić z pola aoColumns. Jak stwierdzono TUTAJ
Następnie musisz dodać pola jak w tabeli Kolumny
źródło
w moim przypadku przyczyną tego błędu jest to, że mam 2 tabele o tym samym identyfikatorze z inną strukturą tabeli, z powodu mojego zwyczaju kopiowania i wklejania kodu tabeli. upewnij się, że masz inny identyfikator dla każdej tabeli.
źródło
Znalazłem jakieś „rozwiązanie”.
Ten kod nie działa:
Ale to jest w porządku:
Myślę, że problem polega na tym, że ostatni TH nie może mieć atrybutu colspan.
źródło