handontable自定义渲染器和数字格式不起作用

时间:2016-07-29 08:56:36

标签: javascript jsp format handsontable renderer

我尝试自定义渲染器和数字格式,但没有运气。指定自定义渲染器或数字格式可以正常工作,但在将两者应用于同一单元格时,将忽略数字格式。

这是一个简单的示例代码,用于演示此问题。没有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();

有人为此找到了解决方案吗? 非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试更改此行:

Handsontable.renderers.TextRenderer.apply(this, arguments);

通过这一行:

Handsontable.renderers.NumericRenderer.apply(this, arguments);
祝你好运;)