当我使用函数更改HandsOnTable单元格的背景时,单元格中呈现的值将更改为1位小数。我认为这是因为我无意中删除了格式字符串,但这看起来不正确。
这是渲染器,单元格函数和列定义:
function negativeValueRenderer(instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
if (value !== instance.getData()[row][2])
td.style.background = 'yellow';
}
Handsontable.renderers.registerRenderer('negativeValueRenderer', negativeValueRenderer);
function cells(row, col, prop) {
if (col === 1)
return { format: '0.00', renderer: negativeValueRenderer }
else
return { format: '0.00', }
}
var colDefs = [
{
dateFormat: 'DD/MM/YYYY HH:mm',
correctFormat: true,
width: 150,
editor: false,
disableVisualSelection: true,
readOnly: true,
}, {
type: 'numeric',
format: '0.00',
width: 75
}, {
type: 'numeric',
format: '0.00',
width: 75,
editor: false,
readOnly: true,
}
];
如何确保具有例如1254.23的单元格保留两位小数 - 在我的表格中,第三列呈现为2位小数,但第二列只有1位。
答案 0 :(得分:0)
我有类似的问题。 在同一页面上,我有两个handontables,我需要为两者上的活动行着色。所以我按照链接https://docs.handsontable.com/0.31.1/demo-conditional-formatting.html
中的示例进行操作哪条线:
Handsontable.renderers.TextRenderer.apply(this, arguments);
这一行给我带来了很多问题,包括复选框,数字,下拉列表等等。我可能会弄错,但据我所知,他们将任何东西都转化为文字。我通过问题https://github.com/handsontable/handsontable/issues/732
的轨道解决了我的问题正如您所看到的,所有单元格都有自己的类型,并且必须根据类型应用不同类型的渲染器。
case 'text':
Handsontable.TextCell.renderer.apply(this, arguments);
break;
case 'autocomplete':
Handsontable.AutocompleteCell.renderer.apply(this, arguments);
break;
case 'checkbox':
Handsontable.CheckboxCell.renderer.apply(this, arguments);
break;
case 'numeric':
Handsontable.NumericCell.renderer.apply(this, arguments);
break;
case 'date':
Handsontable.DateCell.renderer.apply(this, arguments);
break;
case 'handsontable':
Handsontable.HandsontableCell.renderer.apply(this, arguments);
break;
default:
Handsontable.TextCell.renderer.apply(this, arguments);
break;
从colDefs中,您将获得collumn-cell的类型。 希望它能帮助你。
祝你好运