我尝试自定义渲染器和数字格式,但没有运气。指定自定义渲染器或数字格式可以正常工作,但在将两者应用于同一单元格时,将忽略数字格式。
这是一个简单的示例代码,用于演示此问题。没有cellProperties.renderer = firstRowRenderer; 1.5正确显示为1,50€,显示该行1.5(以粗体绿色显示)。
JSP
<div id="exampleGrid"></div>
的Javascript
function firstRowRenderer(instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
td.style.fontWeight = 'bold';
td.style.color = '#177B57';
td.style.background = '#CEC';
}
var contExample = document.getElementById("exampleGrid");
var ExampleHOT;
var language = {
delimiters: {
thousands: '.',
decimal: ','
},
abbreviations: {
thousand: 'k',
million: 'm',
billion: 'b',
trillion: 't'
},
ordinal: function (number) {
return '.';
},
currency: {
symbol: '€'
}
};
if (typeof window !== 'undefined' && this.numeral && this.numeral.language) {
this.numeral.language('de', language);
}
function ExampleTable(){
ExampleHOT = new Handsontable(contExample,{
data: [ [1.5], [] ],
rowHeaders: true,
colHeaders: true,
cells: function (row, col, prop) {
var cellProperties = {};
cellProperties.renderer = firstRowRenderer; // removing this line makes the format work
cellProperties.type = 'numeric';
cellProperties.format = '0.00 $';
cellProperties.language = 'de';
return cellProperties;
}
});}
ExampleTable();
有人为此找到了解决方案吗? 非常感谢!
答案 0 :(得分:1)
您可以尝试更改此行:
Handsontable.renderers.TextRenderer.apply(this, arguments);
通过这一行:
Handsontable.renderers.NumericRenderer.apply(this, arguments);
祝你好运;)