【问题标题】:DataTables not displaying rows in Google chromeDataTables 未在 Google chrome 中显示行
【发布时间】:2011-07-12 08:11:01
【问题描述】:

我正在使用DataTables 的服务器端处理。使用 Firefox 似乎一切正常。但是,当我使用 Chrome 查看表格时,没有显示任何行,并且 DataTable 的“处理中...”状态标签不清除。显示了表格的页眉、页脚和列名,但没有行。

在 Chrome 中,如果我右键单击表格,选择检查元素,然后选择控制台,我看不到任何错误、警告或日志。

表格的所有 HTML 看起来都是正确的,问题似乎是我认为 DataTables 没有在标签之间放置任何内容。

是否有一些我可以查看的日志或可以用来获取更多诊断信息的工具?

什么会阻止 DataTables 将从 JSON 记录中获得的内容添加到 tbody 部分?

几天前我才开始使用 Javascript、Jquery 和 DataTables,我不确定如何追踪问题并解决它。一些指针将不胜感激。

这是我的 DataTable 声明:

<script type="text/javascript">
/* <![CDATA[ */
$(document).ready(function() {
        var oTable = $('#cars-table').dataTable({
                "bAutoWidth": false,
                "bJQueryUI": true,
                "sPaginationType": "full_numbers",
                "bProcessing": true,
                "bStateSave": true,
                "bServerSide": true, 
                "sAjaxSource": "/cars/get_cars_list/",
                "iDisplayLength": 10,
                "fnServerData": function ( sSource, aoData, fnCallback ) {
                    aoData.push({ "name": "where_select_box", "value": $("#select_box option:selected").val() } );
                    $.getJSON( sSource, aoData, function (json) { 
                    fnCallback(json)
                });
                },
                "aoColumnDefs": [
                        { "aTargets": [0], "bVisible": false, "bSearchable": false},
                        { 
                          "aTargets": [1], 
                           "fnRender": function ( oObj ) {
                                return '<a href=\"/cars/' + oObj.aData[0] + '/\">' + oObj.aData[1] + '</a>';
                            },
                          "bSearchable": true, 
                        },
                        { "aTargets": [2], "bSearchable": true},
                        { "aTargets": [3], "bSearchable": false, "sType": 'date'},
                        { "aTargets": [4], "bSearchable": false},
                        { "aTargets": [5], "bSearchable": false},
                ]
        });
        /* Select box */
        $('#select_box').change(function() {
            // Reload data based on choice
            oTable.fnDraw();
        });
} );
/* ]]> */
</script>

如果我启动 Firebug,控制台会显示作为 JSON 数据结构返回的数据,但这些数据永远不会显示在 Chrome 中,但会显示在 Firefox 中。

这是重新调整的 JSON(数据更改为客户机密)

{
    "sEcho": 1,
    "iTotalRecords": 1049,
    "iTotalDisplayRecords": 1049,
    "aaData":[

    [
        "1",
        "car1",
        "Ford",
        "2",
        "2011-12-18",
        "159",
    ]

    ,


    [
        "2",
        "car2",
        "BMW",
        "2",
        "2011-12-18",
        "159",
    ]

    ,

    .
    .
    .

    ]
}

这是我执行“查看源代码”时表格的 HTML - 你可以看到 tbody 是空的。

<div style="width:75%;"> 
<div class="demo_jui"> 
<table id="cars-table" style="width:100%;" class="display" id="example"> 
        <thead> 
                <tr class="gradeA"> 
                        <th> 
                                ID 
                        </th> 
                        <th> 
                                Name
                        </th> 
                        <th> 
                                Manufacturer 
                        </th> 
                        <th> 
                                Size 
                        </th> 
                        <th> 
                                Date 
                        </th> 
                        <th> 
                                Days
                        </th> 
                </tr> 
        </thead> 
        <tbody> 

        </tbody> 
</table> 
</div> 
</div>

【问题讨论】:

  • 你能告诉我们返回的 json 和谷歌浏览器中生成的标记(或页面链接以便我们查看吗?)
  • @Nicola Peluchetti 我更新了问题。谢谢。
  • 也许 chrome 对代码中那些多余的逗号 ' , ' 很挑剔,检查 firefox "html validator" 的扩展是否没有错误,并且如果两者都显示 no,则 firebug 一切正常错误,也许它会对chrome有所帮助
  • @max4ever 尝试删除逗号,但不幸的是没有任何区别。我将尝试使用 html 验证器。谢谢。
  • @max4ever - 我想你修好了!!!当您提到太多逗号时,我认为您的意思是在我的 DT 声明中。但是,我刚刚从我的 JSON 模板中取出了最后一个,这修复了它!谢谢!请添加答案,以便我将其标记为正确。

标签: jquery google-chrome datatables


【解决方案1】:

尝试删除多余的逗号',' IE7 已经足够严格了,过去常常给我 javascript 错误,也许 chrome 也会这样做(firefox 更轻松:D)

【讨论】:

  • 你指的是什么逗号?我也有类似的问题。
  • 类似 "aoColumns": [ { "sName": "ragsoc_denom"}, ] 的额外列是取消的,适用于现代浏览器,会在旧 IE 上出错
猜你喜欢
  • 1970-01-01
  • 2017-03-31
  • 2018-09-07
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
相关资源
最近更新 更多