我在数据表中有一个列,它将数值呈现为格式化的货币值,例如" $ 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;
}
我是否必须为此编写自定义排序?
答案 0 :(得分:3)
只有在显示数据时才能返回格式化值,否则您可以返回未格式化的值进行排序,过滤或类型检测。
例如,在JavaScript中:
render: function(data, type, row){
if(type === 'display'){
data = "$" + data.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,") + " " + "USD";
}
return data;
}