我使用jQuery datatables plugin对表字段进行排序 . 我的问题是如何禁用特定列的排序?我尝试使用以下代码,但它不起作用:
"aoColumns": [
{ "bSearchable": false },
null
]
我也尝试了以下代码:
"aoColumnDefs": [
{ "bSearchable": false, "aTargets": [ 1 ] }
]
但这仍然没有产生预期的结果 .
我使用jQuery datatables plugin对表字段进行排序 . 我的问题是如何禁用特定列的排序?我尝试使用以下代码,但它不起作用:
"aoColumns": [
{ "bSearchable": false },
null
]
我也尝试了以下代码:
"aoColumnDefs": [
{ "bSearchable": false, "aTargets": [ 1 ] }
]
但这仍然没有产生预期的结果 .
23 回答
这就是你要找的东西:
因此,您可以在不希望排序的列的
th
上使用data-orderable="false"
. 例如,下表中的第二列"Avatar"将不可排序:见a working example at https://jsfiddle.net/jhfrench/6yxvxt7L/ .
要使第一列排序禁用,请尝试使用datatables jquery中的以下代码 . null表示此处的排序启用 .
Disable Sorting on a Column in jQuery Datatables
使用Datatables 1.9.4我已使用以下代码禁用了第一列的排序:
EDIT:
您甚至可以使用
<th>
上的no-sort
类禁用,并使用此初始化代码:
EDIT 2
在这个例子中,我正在使用带有Bootstrap的Datables,遵循旧的博客文章 . 现在有一个链接,其中包含有关styling Datatables with bootstrap的更新资料 .
我使用的只是在thead td中添加一个自定义属性,并通过自动检查attr值来控制排序 .
所以HTML代码将是
用于初始化数据表的JavaScript将是(它将动态地从表自身获取排序信息;)
columnDefs
现在接受一个 class . 我想在你的标记中指定要禁用的列:然后,在你的JS中:
以下是禁用某些列的禁用方法:
因此,您所要做的就是将“可订购”:false添加到您不希望可排序的列中 .
截至 1.10.5 ,只需包括
在columnDefs中并使用
表应该像:
对于单列排序禁用尝试此示例:
对于多列,请尝试以下示例:您只需添加列号 . 默认情况下,它从0开始
这里只有
Column 3
有效如果将FIRST列
orderable
属性设置为false,则 must 也会设置默认的order
列,否则它将赢得't work since first column is the default ordering column. Example below disables sorting on first column but sets second column as default order column (remember dataTables'索引为零 . )这里
0
是列的索引,如果你想要多列没有排序,请提及由comma(,)
分隔的列索引值更新Bhavish的答案(我认为是旧版本的DataTables并且对我不起作用) . 我认为他们改变了属性名称 . 试试这个:
使用课程:
这适用于单列
如果您必须隐藏某些列,例如我隐藏姓氏列 . 我只需要连接fname,lname,所以我查询但是从前端隐藏该列 . 在这种情况下禁用排序的修改是:
请注意,我在这里有隐藏功能
然后我把它合并到
"aoColumnDefs"
您可以直接在列上使用.notsortable()方法
你也可以像这样使用负面索引:
代码如下所示:
这是答案!
targets
是列号,它从0开始有两种方法,一种是在定义表头时在html中定义的
另一种方法是使用javascript,例如,你有表
然后,
在表格中设置类“no-sort”然后添加css .no-sort {pointer-events:none!important; cursor:default!important; background-image:none!important;通过它,它将隐藏头部中的箭头updown和disble事件 .