[英]How to use a custom sort method with Mulitple Sort
我正在使用具有多重排序扩展名的Bootstrap表 。 我有一列具有指数值的列,例如2 x 10-8、1 x 10-7、4 x 10-6,并编写了自定义排序方法来对这些值进行排序。 通过将sorter: "pValueSorter"
设置为以下方式,该方法可以在使用“ single”排序时对列进行排序:
$('#table').bootstrapTable({
exportDataType: 'all',
filterControl: true,
columns: [{
field: 'pValue',
title: 'P-value',
sortable: true,
sorter: "pValueSorter",
filterControl: 'input'
}
...
然后该方法为:
function pValueSorter(a, b) {
sort method here
...
}
使用MultiplSort扩展时,如果此列包含在排序中,是否可以使用此自定义方法?
不能通过获得您的专栏
function pValueSorter(a, b) {
a.children[colNum]
b.children[colNum]
...
}
如果从0开始?
2016年的这篇文章解释了如何在排序函数中对多个列进行排序。
基本上,如果第一个检查返回0
,它是false,它将处理下一个检查,依此类推:
var data = []; (function () { var names = ["Logan", "Bub", "Scott", "That-guy"]; while (data.length < Math.pow(names.length, 2)) { data.push({ age: Math.ceil(Math.random() * names.length), name: names[Math.floor(Math.random() * names.length)] }); } })(); function multiSortData(a, b) { return b.name.localeCompare(a.name) || a.age - b.age; } function displayData(data) { var table = document.createElement("table"); table.innerHTML = "<tr><td>Name</td><td>Age</td></tr>"; table.border = "true"; data.forEach(function (data) { var tr = table.appendChild(document.createElement("tr")); tr.appendChild(document.createElement("td")).textContent = data.name; tr.appendChild(document.createElement("td")).textContent = data.age; }); table.style.cssText = "background-color: #eee;margin: 1em;border: 1 solid;"; document.body.appendChild(table); } //TEST displayData(data); displayData(data.sort(multiSortData));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.