У меня проблема с Datatables
. Я также прошел по этой ссылке, которая не дала никаких результатов. Я включил все предпосылки для анализа данных непосредственно в DOM. Пожалуйста, помогите мне решить эту проблему.
скрипт
$(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
источник
источник
Ответы:
FYI dataTables требует хорошо сформированной таблицы. Он должен содержать
<thead>
и<tbody>
теги, иначе выдает эту ошибку. Также убедитесь, что все ваши строки, включая строку заголовка, имеют одинаковое количество столбцов.Следующее выдаст ошибку (нет
<thead>
и<tbody>
теги)Следующее также выдаст ошибку (неравное количество столбцов)
Для получения дополнительной информации читайте больше здесь
источник
Распространенной причиной
Cannot read property 'fnSetData' of undefined
является несоответствующее количество столбцов, как в этом ошибочном коде:В то время как следующий код с одним
<th>
на<td>
(количество столбцов должно совпадать) работает:Ошибка также появляется при использовании правильно сформированного thead с colspan, но без второго ряда.
Для таблицы с 7 столбцами следующее не работает, и мы видим «Не удается прочитать свойство« mData »из undefined» в консоли javascript:
Пока это работает:
источник
tr
использованного для включения всехth
элементов. Просто оставьте это здесь на случай, если кто-то найдет это полезным!th
столбца в моемthead
, который вызывал ошибку. Ответ Натана Ханны также указывает на эту проблему.th
в моемthead
тоже!colspan
интерпретации - все еще проблема. Я должен был положить некоторые пустыеth
и нет,colspan
чтобы избавиться от ошибок. Но что просто добавить, чтобы получить эту функциональность. Кстати: Rails 5.1.5, Bootstrap 4.0.0. Я просто добавил таблицы стилей и сценарии CDN и$(document).ready…
на страницу.У меня была та же проблема с использованием данных DOM в представлении Rails, созданном с помощью генератора скаффолдов. По умолчанию представление пропускает
<th>
элементы для последних трех столбцов (которые содержат ссылки для отображения, скрытия и уничтожения записей). Я обнаружил, что если я добавлю заголовки для этих столбцов в<th>
элементе,<thead>
то это решит проблему.Я не могу сказать, если это та же проблема, что у вас, так как я не вижу ваш HTML. Если это не та же проблема, вы можете использовать отладчик chrome, чтобы выяснить, в каком столбце он выдает ошибку, нажав на ошибку в консоли (которая приведет вас к коду, на котором происходит сбой), а затем добавив условное выражение. точка останова (в
col==undefined
). Когда она останавливается, вы можете проверить переменную,i
чтобы увидеть, в каком столбце она находится в данный момент, и которая может помочь вам выяснить, чем отличается этот столбец от других. Надеюсь, это поможет!источник
colspan="3"
но получил ошибки (вот как я оказался на этой странице). Я немного повозился, но в конце концов сдался и создал триth
элемента с первым «Детали» и оставил последние два пустыми. Вокруг предположили, что у dataTables есть проблемы с colspan как последним в серии. Исправление OP странно в том, что количество столбцов не складывается. У меня не было никаких условий на столе, таких какorder
илиsortable
. Я добавил их после того, как заработал.Имея
<thead>
и<tbody>
с одинаковыми номерами<th>
и<td>
решив мою проблему.источник
Это также может произойти, если у вас есть аргументы таблицы для таких вещей,
'aoColumns':[..]
которые не соответствуют правильному количеству столбцов. Подобные проблемы обычно возникают при копировании кода с других страниц, чтобы быстро начать интеграцию таблиц данных.Пример:
Это не сработает:
Но это будет работать:
источник
Еще одна причина, по которой это происходит, заключается в параметре columns в инициализации DataTable.
Количество столбцов должно совпадать с заголовками
У меня было 7 колонок
источник
Вы должны удалить свой
colspan
номерth
иtd
должен соответствовать.источник
Советы 1:
По этой ссылке вы получите несколько идей:
https://datatables.net/forums/discussion/20273/uncaught-typeerror-cannot-read-property-mdata-of-undefined
Советы 2:
<thead></thead>
&<tbody></tbody>
тегиstyle='display:none'
одинаково применимо как к заголовку, так и к телу.<td>, <tr>
проблемисточник
в моем случае эта ошибка произошла, если я использую таблицу без заголовка
источник
Я столкнулся с той же ошибкой, когда пытался добавить colspan к последнему
и решил это, добавив скрытый столбец в конце тр
Объяснение этому заключается в том, что по какой-то причине DataTable не может быть применен к таблице с colspan в последнем th, но может быть применен, если colspan используется в любом middle.
Это решение немного хакерское, но проще и короче, чем любое другое решение, которое я нашел.
Я надеюсь, что это поможет кому-то.
источник
Немного другая проблема для меня из ответов, приведенных выше. Для меня разметка HTML была в порядке, но один из моих столбцов в javascript отсутствовал и не соответствовал html.
т.е.
Мой сценарий: -
источник
У меня была динамически сгенерированная, но плохо сформированная таблица с опечаткой. Я скопировал
<td>
тег внутри другого<td>
по ошибке. Количество моих столбцов совпадает. У меня были<thead>
и<tbody>
теги. Все совпало, за исключением этой маленькой ошибки, которую я некоторое время не замечал, потому что в моей колонке было много ссылок и тегов изображений.источник
Я столкнулся с той же проблемой, но я генерировал таблицу динамически . В моем случае на моем столе отсутствовали
<thead>
и<tbody>
теги.вот мой фрагмент кода, если это помогло кому-то
источник
В дополнение к несогласованности и числам, это также может быть вызвано отсутствующим элементом в части столбцов датируемых сценариев. Исправление, которое исправило мою строку поиска в datatables.
Я говорю об этой части;
Я боролся с этой ошибкой до тех пор, пока мне не указали, что эта часть имеет на единицу меньше «ноль», чем мой общий счет.
источник
Это привело меня в бешенство - как успешно отрисовать DataTable в представлении .NET MVC. Это сработало:
Скрипт в файле JS:
источник
В моем случае, используя ASP.NET GridView, UpdatePanel и DropDownList (с плагином Chosen, где я сбрасывал значение до нуля с помощью строки Javascript), я получил эту ошибку и пробовал все без надежды в течение нескольких дней. Проблема заключалась в том, что код моего раскрывающегося списка кода был следующим, и когда я выбираю значение дважды, чтобы применить его действие к выбранным строкам сетки, я получаю эту ошибку. В течение нескольких дней я думал, что это проблема с Javascript (опять же, в моем случае), и, наконец, исправление давало ноль для значения drowpdown в процессе обновления:
Это была моя вина:
источник
Вы должны обернуть свои строки
<thead>
для заголовков столбцов и<tbody>
для строк. Также убедитесь, что у вас есть соответствие нет. заголовков столбцов,<th>
как вы делаете дляtd
источник
Я могу возникнуть из поля aoColumns. Как заявлено ЗДЕСЬ
Затем вы должны добавить поля, как в столбцах таблицы
источник
в моем случае причиной этой ошибки является то, что у меня есть 2 таблицы с одинаковым именем с разной структурой таблицы из-за моей привычки копировать и вставлять код таблицы. пожалуйста, убедитесь, что у вас разные идентификаторы для каждой таблицы.
источник
Я нашел какое-то «решение».
Этот код не работает:
Но это нормально
Я думаю, что проблема в том, что последний TH не может иметь атрибут colspan.
источник