"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,                   });

Удалите этот код со своей страницы и проверьте синтаксис установки значений текстовых полей, тогда он будет работать нормально.