datatables空表错误

时间:2013-03-21 08:53:10

标签: javascript jquery datatables

我有一段代码,我使用datatables插件。

表结构如下所示:

<thead>
    <tr>
        <th>col1</th>
        <th>col2</th>
        <th>col3</th>
        <th>col4</th>
        <th>col5</th>
        <th>col6</th>
        <th>col7</th>
        <th>col8</th>
    </tr>
</thead>

但请注意,在初始化代码中,我隐藏了最后四列。

在我的代码中,我执行以下操作:

if($data->responseCode < 400)
{
    echo HTML Table
}

有效

else
{
    echo '<tr><td colspan=4><h1 class="error">'.$data->errorMsg.'</h1></td></tr>';
}

当我这样做时,我收到以下错误:

“DataTables warning(table id ='DataTables_Table_0'):从第0行的数据源请求未知参数'1'”

这里是数据表代码:

var oTable = $('.table1').DataTable({
    "iDisplayLength": 100,
    "aaSortingFixed": [[0,'desc']],
    "aaSorting": [ [0,'asc'] ],
    "aoColumnDefs": [
          { "bVisible": false, "aTargets": [ 4,5,6,7 ] },
          { "bSearchable": false, "aTargets": [ 1,2,3,4,5,6,7] },
          { "bSearchable": true, "aTargets": [ 0 ] },
        ]
});

有人知道会导致什么吗?我想也许是colspan,但当我删除它时,问题仍然存在。奇怪的是我在另一个页面上使用它,它似乎处理一个空的结果集就好了。

不确定这是否有帮助,但在玩了一点后我设法得到以下错误显示在firebug中:

“TypeError:nTd未定义”

4 个答案:

答案 0 :(得分:5)

如果您经常使用数据表,那么这是您将获得的常见错误。原因是用于创建数据表的数据格式与表列不匹配,例如,您有4列,而源数据只能提供3列。您可以发布数据格式和表格结构,让我检查一下进一步的问题。

答案 1 :(得分:0)

您的else语句不包含table HTML开始标记,也许这就是问题,您只能回显一行。 试试

else
{
    echo '<table id="table_id" class="table1"><tr><td colspan=4><h1 class="error">'.$data->errorMsg.'</h1></td></tr></table>';
}

答案 2 :(得分:0)

这是因为dataTable会检查匹配的&#34;列&#34;在标题和&amp;身体表

else
    {
        echo '<tr><td>'.$data->errorMsg.'</td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              </tr>';
    }

它将显示为空行,并在行的第一列中显示errorMsg。

答案 3 :(得分:0)

您可以使用较小的逻辑来解决此问题,检查空记录并为每个数据表动态设置表类。

{{1}}