2017-03-08 73 views
0

當我使用函數更改HandsOnTable單元格的背景時,單元格中呈現的值更改爲小數點後1位。我以爲這是因爲我無意中刪除了格式字符串,但這看起來不正確。使用渲染器時HandOnTable單元格值發生更改

這是渲染器,細胞功能和列定義:

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

我有一個類似的問題。 在同一頁面我有兩個手錶,並且我需要爲兩個主動行着色。所以我遵循鏈接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中,您將獲得柱狀單元的類型。 希望它可以幫助你。

好運