在 react-bootstrap-table2 中用逗号排序数字
Sorting number with comma in react-bootstrap-table2
使用 react-bootstrap-table2,当尝试用逗号 (12,000) 过滤大数字时,它不起作用。是否可以用逗号过滤数字?
例子
干杯!
没有看到你的代码,很难说。但是也许 table 中的每个单元格数据都是一个字符串,而不是一个数字,这可能会导致排序异常。我以前有同样的问题。按数字排序,然后用排序后数字的格式化字符串版本填充 table 单元格,如果这样的话。
让我们假设:
- 您的字段名称是“估计”
- 千位分隔符是 '(撇号)
- 小数点分隔符是 ,(逗号)
您可以按如下方式编写排序函数 (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;
}
import ToolkitProvider, { Search } from "react-bootstrap-table2-toolkit";
import paginationFactory from "react-bootstrap-table2-paginator";
首先请检查号码或non-number。
如果你的数组里面的数字 return 其他数字是 non-number :
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
我解决了这个问题,这是我的 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;
}
使用 react-bootstrap-table2,当尝试用逗号 (12,000) 过滤大数字时,它不起作用。是否可以用逗号过滤数字?
例子
干杯!
没有看到你的代码,很难说。但是也许 table 中的每个单元格数据都是一个字符串,而不是一个数字,这可能会导致排序异常。我以前有同样的问题。按数字排序,然后用排序后数字的格式化字符串版本填充 table 单元格,如果这样的话。
让我们假设:
- 您的字段名称是“估计”
- 千位分隔符是 '(撇号)
- 小数点分隔符是 ,(逗号)
您可以按如下方式编写排序函数 (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;
}
import ToolkitProvider, { Search } from "react-bootstrap-table2-toolkit";
import paginationFactory from "react-bootstrap-table2-paginator";
首先请检查号码或non-number。
如果你的数组里面的数字 return 其他数字是 non-number :
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
我解决了这个问题,这是我的 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;
}