"oCol未定义"使用Datatables和jQuery Ui Dialog

Ale*_*rri 15 jquery jquery-ui datatables jquery-ui-dialog

我有一个表单,用于搜索注册表.这个表单显示了jQuery Dialog我正在使用Datatables的对话框内部的信息(是的,在对话框内部我有一个完整的表格).我用PHP动态生成TR和TD,然后,PHP将字符串粘贴到HTML中.但是,当显示对话框时,我收到此错误:

oCol未定义:oCol.fnSetData(oData,val);

我在Firefox和Chrome中尝试它,它也是一样的.我也在http://www.datatables.net上搜索过,我丢弃了一个'格式错误的表'.我不知道我做错了什么.

你能帮帮我解决这个问题吗?

这是我的JS Block:

        <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>
Run Code Online (Sandbox Code Playgroud)

这是我的表(使用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>
Run Code Online (Sandbox Code Playgroud)

提前致谢.

thu*_*gsb 21

这可能会发生,因为您的表格结构不正确.一定要有thead和tbody.我有这个错误,一旦我添加了thead和tbody它就消失了.我的设置与其他回复中的设置完全不同 - 我不确定为什么这个设置有效,因为它不适合我.

table
  thead
    tr
      th`s
  tbody
    tr`s
      td`s
Run Code Online (Sandbox Code Playgroud)

  • 这个.当我在体内添加一个列但未能为它添加一个列时,我遇到了这个问题. (5认同)

Nic*_*tti 8

您是否尝试过像这样设置Columns:

                    $("#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

                    ]
                    });
Run Code Online (Sandbox Code Playgroud)

如果这仍然不起作用,你能否发布生成的HTML?您可以考虑的另一件事是在document.ready上初始化表,而不仅仅是在打开对话框时,但我不认为这是问题.

  • 为什么这有必要? (10认同)
  • 如果您的标题多于连续的单元格,反之亦然,这只是解决方案,正确的解决方案是暴徒的解决方案.虽然它可以解决手头的问题,但它正在解决问题. (2认同)