答案 0 :(得分:1)
很难看到您的代码。但是,表中的每个单元格数据可能都是字符串,而不是数字,这可能会导致排序怪异。我之前也遇到过同样的问题。按数字对它进行排序,然后在排序后用数字的格式化字符串版本填充表格单元格(如果可以的话)。
答案 1 :(得分:0)
让我们假设:
您可以按以下方式编写排序函数(sortFunc
):
{
dataField: 'estimation',
text: 'Estimation',
sort: true,
sortFunc: (a, b, order, dataField, rowA, rowB) => {
const numA = parseFloat(a.replace('\'', '').replace(',', '.'));
const numB = parseFloat(b.replace('\'', '').replace(',', '.'));
if (order === "asc") {
return numB - numA;
}
return numA - numB;
}
答案 2 :(得分:0)
我解决了这个问题,这里是我的Bootstrap Table排序函数。
sortFunc: (a, b, order) => {
const numA = parseFloat(a.replace(/\,/g,''), 10)
const numB = parseFloat(b.replace(/\,/g,''), 10)
if (order === "asc") {
return numB - numA;
}
return numA - numB;
}
答案 3 :(得分:-1)
import ToolkitProvider, { Search } from "react-bootstrap-table2-toolkit";
import paginationFactory from "react-bootstrap-table2-paginator";
请先检查数字或非数字。
如果您的数组内部编号返回编号,否则为非编号:
yourDataArray.map(function (item, x) {
item._Number_of_stocks = parseInt(item.Number_of_stocks);
});
在此处排序功能
sortFunc: (a, b, order, dataField, rowA, rowB) => {
if (order === "asc") {
return (
isNaN(rowB._Number_of_stocks) - !isNaN(rowB._Number_of_stocks)
);
}
return !isNaN(rowB._Number_of_stocks) - isNaN(rowB._Number_of_stocks);
},
请参阅:https://github.com/react-bootstrap-table/react-bootstrap-table2/blob/master/docs/columns.md