"oCol - Undefined" Использование Datatables и jQuery Ui Dialog
У меня есть форма для поиска в реестре. Эта форма показывает информацию в jQuery Dialog
, и внутри диалогового окна я использую Datatables
(Да, внутри диалога у меня есть целая таблица). Я динамически генерирую TR и TD с помощью PHP, а затем PHP вставляет строку в HTML.
Но, когда отображается диалог, я получаю эту ошибку:
oCol undefined: oCol.fnSetData(oData, val);
Я пытаюсь в Firefox и Chrome, и это то же самое. Также я искал http://www.datatables.net, и я отбросил "неверную таблицу". Я не знаю, что я делаю неправильно.
Можете ли вы помочь мне с этой проблемой?
Это мой блок JS:
<script type="text/javascript" language="javascript" src="lib/jQuery/jquery-1.6.1.js"></script>
<script type="text/javascript" language="javascript" src="lib/jQuery Ui/js/jquery-ui-1.8.13.custom.min.js"></script>
<script type="text/javascript" language="javascript" src="lib/Datatables/DataTables-1.8.0/media/js/jquery.dataTables.js"></script>
<script type="text/javascript">
$(document).ready(function (){
$("#results").dialog({
title: "Results",
width: 900,
height: 500,
open: function(event, ui){
$("#tRes").dataTable({
"bPaginate": true,
"bLengthChange": true,
"bFilter": true,
"bSort": true,
"bInfo": true,
"bAutoWidth": true
});
}
});
});
</script>
Это моя таблица (с PHP-фрагментом):
<div id="results">
<table id="tRes">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>State</th>
<th>Address</th>
</tr>
</thead>
<tbody>
<?php
echo $rows;
?>
</tbody>
</table>
</div>
Спасибо в Advance.
Ответы
Ответ 1
Вы пробовали настройки своих столбцов следующим образом:
$("#tRes").dataTable({
"bPaginate": true,
"bLengthChange": true,
"bFilter": true,
"bSort": true,
"bInfo": true,
"bAutoWidth": true,
"aoColumns": [
null,
null //put as many null values as your columns
]
});
Если это все еще не работает, можете ли вы опубликовать сгенерированный HTML-код?
Еще одна вещь, которую вы могли бы рассмотреть, - инициализация таблицы на document.ready, а не только при открытии диалога, но я не думаю, что проблема здесь.
Ответ 2
Это может происходить, потому что ваша таблица не структурирована правильно. Удостоверьтесь, что у вас есть и я. У меня была эта ошибка, и как только я добавил тэд и труп, она исчезла. Мои настройки не были похожими на настройки в другом ответе - я не уверен, почему это сработало, поскольку это не для меня.
table
thead
tr
th`s
tbody
tr`s
td`s
Ответ 3
Плагин datatables для jQuery требует, чтобы количество элементов в теге <tbody>
соответствовало количеству элементов <th>
в теге <thead>
вашей таблицы.
Ответ 4
$( "# trés" ). DataTable ({ "bPaginate": true, "bLengthChange": true, "bFilter": true, "bSort": true, "bInfo": true, "bAutoWidth": true, });
Удалите этот код со своей страницы и проверьте синтаксис установки значений текстовых полей, тогда он будет работать нормально.