2016-07-29 3 views
0

Я пытаюсь настроить рендерер и числовой формат для одной и той же handsontable cell без везения. Любое указание настраиваемого рендеринга или числового формата отлично работает, но при применении к одной и той же ячейке числовой формат игнорируется.handsontable настраивающий рендерер и числовой формат не работает

Вот простой пример кода, который демонстрирует проблему. Без 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

Вы можете попытаться изменить эту строку:

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

По этой линии:

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

Удачи;)