我试图找出一种方法来解决在Repeater中设置DataTable的问题。根据查看页面的用户,列数更改。例如,User1将看到8列,而user2将在表中看到7列。
Datatables允许我选择具有订单功能的表的默认顺序:
var table = $('#example'String).DataTable();
// Sort by column 8 and then re-draw
table
.order( [ 8, 'asc' ] )
问题在于每当我更改User2的第1列的可见性时:
column0.Visible = False
...列数更改,因此执行odering的正确索引已从索引8更改为索引7.
我尝试使用<td> ID
的默认排序,但它只会接受Colummn Index
。
我曾试图使用负面索引从右侧开始,但它不起作用。
我还试图找到一种手动硬编码表格列的方法,而不会将订单更改为最终用户。
如果我可以更改列的顺序,但它们需要在屏幕上按特定顺序排列,这将很简单。
任何熟悉Datatables的人都可以帮助我解决这个问题。非常感谢:)
答案 0 :(得分:1)
我无法看到您的数据表Init代码,但我通过在init上命名列然后使用它来查找列索引来实现此目的:
在init中:
table = $("table").DataTable({
"columns": [
{"name": "Row1"}
{"name": "Row2"}
]
});
然后,您可以像这样获取行的索引:
var row1Index = table.column('Row1:name').index();
使用索引进行过滤:
table.order([row1Index, 'asc']);
它应该允许你的索引是基于初始化的变量。
请在此处查看名称文档:https://datatables.net/reference/option/columns.name