如果列不匹配,DataTable不起作用

时间:2017-11-30 10:03:13

标签: javascript jquery html laravel datatables

我有一个显示一行的表,另一行是隐藏的,但显示在onclick上。

<table cellspacing="0" id="datatable" class="table table-responsive table-striped table-bordered" style="width: 1300px; margin-bottom: 50px">
    <thead>
        <tr>
            <th>#</th>
            <th>1</th>
            <th>2</th>
            <th>3</th>
            <th>4</th>
            <th>5</th>
            <th>6</th>
            <th>7</th>
            <th>8</th>
            <th>9</th>
        </tr>
     </thead>
     <tbody>
         <tr>
           <td>#</td>
           <td>1</td>
           <td>2</td>
           <td>3</td>
           <td>4</td>
           <td>5</td>
           <td>6</td>
           <td>8</td>
           <td>9</td>
       </tr>
       <tr>
           <td colspan="9" id="break_{{$t->BreakID}}" style="display: none;"></td>
       </tr>
            </tbody>
        </table>

如果删除此行,DataTable功能将起作用:

<tr>
    <td colspan="9" id="break_{{$t->BreakID}}" style="display: none;"></td>
</tr>

或者如果我添加8个td以匹配前一行的th,但它看起来很难看。我需要一个colspan = 9的td。我还试图添加8个隐藏显示风格的td。它也没有成功。

否则它不起作用并产生错误:

Uncaught TypeError: Cannot set property '_DT_CellIndex' of undefined

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

每行必须包含相同数量的列,包括标题。 如果最后一行不应覆盖所有列。您应该尝试使用CSS隐藏不需要的<td>

除非存在插件,否则我认为DataTables无法实现您想要的功能。在他们的手册中,他们确实有关于“行分组”的内容,但我猜他们的意思是“单元格分组”而不是Row grouping?无论如何,在示例中,td的数量与表的其余部分匹配。

答案 1 :(得分:0)

我不知道这是否会影响,但第一行有10个单元格,第二行有9个单元格,第三行有9个单元格。

答案 2 :(得分:0)

数据表需要您定义的所有字段,加载或数据提取后,您可以使用数据表的函数隐藏特定列

在js文件中这样

usercheck是我的用户角色检查变量。

if (usercheck == 3)
{
    data_table.column(6).visible(false);//data_table is variable of data-table and here is the code to hide column in data-table
}

你必须在条件下隐藏特定的列。