开发者问题收集

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

2017-11-30
408

我有一个表格,其中一行显示,另一行隐藏,但单击时会显示。

<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,但这样看起来很丑。我需要一个 td,即 colspan = 9 。我还尝试添加 8 个具有隐藏显示样式的 td。同样没有成功。

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

Uncaught TypeError: Cannot set property '_DT_CellIndex' of undefined

有什么建议吗?

3个回答

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

martxalen
2017-11-30

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

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

Brainfeeder
2017-11-30

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

就像在 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
}

您必须根据条件隐藏特定列。

Niket Joshi
2017-11-30