我使用 Tabulator JS,并且有 2 列包含数字数据。首先,我使用了带有 formatterParams 参数的内置 money 格式化程序,对于第二个,我想应用完全相同的、具有相同参数的,但还要添加,例如,单元格的颜色。如何以自定义格式应用formatterParams?
new Tabulator("#data-table", {
data: data,
layout: "fitColumns",
columns: [{
title: "Length",
field: "length",
formatter: zeroValueFormatter,
formatterParams: {
thousand: " ",
precision: false
}
},
{
title: "New length",
field: "newLength",
formatter: "money",
formatterParams: {
thousand: " ",
precision: false
}
],
});
function zeroValueFormatter(cell, formatterParams /* ? */) {
if (cell.getValue() === 0) {
cell.getElement().style.backgroundColor = "#add8e6";
}
return cell.getValue();
} Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
一种选择是使用
rowFormatter并将格式应用于您需要的特定列。在您的示例中,是length列。这样,您可以在两列的列设置级别使用内置的money格式化程序,但在行级别应用其他格式。这是一个例子:const data = [ { length: 0, newLength: 10000 }, { length: 2000, newLength: 20000 }, { length: 3000, newLength: 0 } ] const table = new Tabulator("#data-table", { data: data, layout: "fitColumns", rowFormatter: zeroValueFormatter, columns: [{ title: "Length", field: "length", formatter: "money", formatterParams: { thousand: " ", precision: false } }, { title: "New length", field: "newLength", formatter: "money", formatterParams: { thousand: " ", precision: false } } ], }); function zeroValueFormatter(row) { const rowData = row.getData() if (rowData['length'] === 0) { row.getCell('length').getElement().style.backgroundColor = "#add8e6"; } }