如果列不匹配,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