2017-02-20 9 views
0

У меня есть таблица HandsOnTable и вы хотите установить цвет фона для каждой ячейки без предоставления функции рендеринга или тому подобного. Я попытался скопировать процесс, который использует их Science demo, но моя таблица имеет форматирование по значениям и теряет свой код своей программы визуализации.Как установить цвет фона для каждой ячейки в HandsOnTable?

Моя версия визуализатора:

var footerRenderer = function(instance, td, row, col, prop, value, cellProperties) { 
    Handsontable.renderers.TextRenderer.apply(this, arguments); 
    td.style.backgroundColor = '#EEE'; 
    td.style.textAlign = 'right'; 
} 

Для уточнения: Проблема здесь заключается в том, что с помощью функции рендеринга с HandsOnTable появляются уничтожить форматирование, которое было применено в свойствах таблицы, когда что-то простое как изменение цвета фона ячейки.

+0

можно использовать vanilla js? – levi

+0

Не знаете, как определить тот конкретный элемент, который я ищу. –

+0

Кроме того, это, как представляется, не документировано: Handsontable.renderers.TextRenderer.apply –

ответ

0

Существует множество способов достижения этой цели. Однако функция клеток, вероятно, самая лучшая.

Вариант 1

Шаг 1: Настройка handsontable:

var container = document.getElementById('Element_ID'); 
hot = new Handsontable(container, { 
    data: <yourdataArray>, 
    autoRowSize:false, 
    autoWrapRow:true, 
    autoRowSize: false 
}); 

Шаг 2: Обновление handsontable настройки с помощью функции клеток. Функция клетки будет проходить через каждую строку и ячейки в таблице

// update spreadsheet setting 
hot.updateSettings({ 
    cells: function (row, col, prop) {       
      var cell = hot.getCell(row,col); // get the cell for the row and column                             
      cell.style.backgroundColor = "#EEE"; // set the background color 
    } 
}); 

Вариант 2

Я рекомендую клетку функционировать над этим, но это демонстрирует другие способы сделать то же самое.

var hot = new Handsontable(document.getElementById('example1'), options); 
var rows=hot.countRows(); // get the count of the rows in the table 
var cols=hot.countCols(); // get the count of the columns in the table. 
for(var row=0; row<rows; row++){ // go through each row of the table 
    for(var col=0; col<cols; col++){ // go through each column of the row 
     var cell = hot.getCell(row,col); 
     cell.style.background = "#00FF90"; 
    } 
} 
hot.render(); // ensure the table is refreshed. 
Смежные вопросы