我正在尝试使用.dataTable进行排序,它工作正常,除了包含我在其上使用href标记的数字的列。 没有标签,排序工作正常,但是当我使用标签时,它似乎将它们排序为字符串:
1
2
3
11
14
21
变为:
1
11
14
2
21
etc.
这是代码:
$('#datatableme').dataTable({
"aaSorting": [[0, "desc"]],
"aoColumns": [
null,
null,
null,
null,
null,
null,
null
],
"sPaginationType": "full_numbers",
"bPaginate": true,
"bLengthChange": false,
"bFilter": false,
"bSort": true,
"bInfo": true,
"bAutoWidth": true,
"iDisplayLength": 40,
"bStateSave": false
});
任何人都可以帮助我吗?
答案 0 :(得分:1)
2个选项。
使用此处的自定义排序插件:http://datatables.net/plug-ins/sorting,它允许您定义排序类型“带数字的html”,它会删除html标签,然后按数值而不是字符串对剩余数据进行排序
在列旁边创建一个ghost / dummy列,在列定义中将其设置为不可见,然后使用“iDataSort”指定应在此“隐藏”列上进行排序,当您单击可见时列排序按钮
答案 1 :(得分:1)
有一个alt解决方案......你可以在HREF之前简单地在A标签上添加ID和NAME ......
例如,我按名称排序我的表...当我把
<a name="John Doe" href="link">John Doe</a>
DataTable搞砸了所有......
所以我只是在HREF之前添加NAME ......看起来像这样:
<a name="1" href="link">1</a>
<a name="3" href="link">3</a>
<a name="2" href="link">2</a>
对我有用。 所以我相信你可以尝试类似的东西:
object(Automattic\WooCommerce\HttpClient\Request)#85 (5) {
["url":"Automattic\WooCommerce\HttpClient\Request":private]=>
string(67) "https://example.com/wp-json/wc/v2/products/categories/?per_page=100"
["method":"Automattic\WooCommerce\HttpClient\Request":private]=>
string(3) "GET"
["parameters":"Automattic\WooCommerce\HttpClient\Request":private]=>
array(1) {
["per_page"]=>
int(100)
}
["headers":"Automattic\WooCommerce\HttpClient\Request":private]=>
array(2) {
["Accept"]=>
string(16) "application/json"
["User-Agent"]=>
string(32) "WooCommerce API Client-PHP/1.3.0"
}
["body":"Automattic\WooCommerce\HttpClient\Request":private]=>
string(0) ""
}
DataTable应该对此进行正常排序。
答案 2 :(得分:0)
您需要将商家信息中任意列的sType
参数设置为html
。像这样:
"aoColumns": [
{ "sType": "html" },
null,
null,
null,
null,
null,
null
],
这意味着单元格中的任何HTML都将在sort函数中被忽略。
以下是DataTables documentation的一个工作示例。
答案 3 :(得分:0)
DataTables将尝试自动检测您的表中包含的数据类型,以便准确地对此数据进行排序和过滤
请注意,在DataTables 1.7之前,未自动检测到HTML类型,并且必须为列指定sType
这可能会对你有所帮助
http://www.datatables.net/release-datatables/examples/advanced_init/html_sort.html
答案 4 :(得分:0)
感谢李(和办公室里的人:)),我找到了答案,这就是它的完成方式:
$('#datatableme').dataTable({
"aaSorting": [[0, "desc"]],
"aoColumns": [
null,
null,
null,
null,
{ "iDataSort": 6 },
null,
{ "bVisible": false }
最后一列与我想要整理的列相同,但没有href标记。 这是表格:
<td>
<a href=""><%=arr("num")%></a>
</td>
<td>
<%=arr("Name")%>
</td>
<td>
<%=arr("num")%>
</td>