在react-bootstrap-table2中用逗号排序数字

时间:2018-11-09 17:06:53

标签: reactjs react-bootstrap-table

使用react-bootstrap-table2,当尝试使用逗号过滤大量数字(12,000)时,它将不起作用。可以用逗号过滤数字吗?

示例 enter image description here

干杯!

4 个答案:

答案 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";

请先检查数字或非数字。

  1. 如果您的数组内部编号返回编号,否则为非编号:

    yourDataArray.map(function (item, x) {
      item._Number_of_stocks = parseInt(item.Number_of_stocks);
    });
    
  2. 在此处排序功能

    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