Jquery Datatables如何对自定义格式的数字列进行排序?

时间:2017-03-31 04:19:00

标签: typescript datatables

我在数据表中有一个列,它将数值呈现为格式化的货币值,例如" $ 5,66666.77 USD"。 以下是此列的Jquery表定义的一部分,

            data: "amount",
            orderable: true,
            searchable: false,
            render: (data, type, row) => {
                var formattedAmount = "$" + data.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,") + " " + "USD";
                return formattedAmount;
            }

当我没有" USD"后缀正确排序。但是,当我有美元时,它就像一个字符串。有没有解决这个问题?我可以为排序数据定义不同的值吗?

我使用的是Typescript类型。

"数据"属性接受ObjectColumnData,我试图使用它,但它没有使用我定义的排序字段。

 interface ObjectColumnData {
        _: string;
        filter?: string;
        display?: string;
        type?: string;
        sort?: string;
    }

我是否必须为此编写自定义排序?

1 个答案:

答案 0 :(得分:3)

只有在显示数据时才能返回格式化值,否则您可以返回未格式化的值进行排序,过滤或类型检测。

例如,在JavaScript中:

render: function(data, type, row){
    if(type === 'display'){
        data = "$" + data.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,") + " " + "USD"; 
    }

    return data;
}