2013-07-03 4 views
0

У меня есть handsontable, который содержит 2 ряда из 3 дат, и я хотел бы изменить цвет в зеленом цвете, когда новая дата будет вставлена ​​в непустую ячейку.Совместимые цвета и цвета ячеек

моя функция для handsontable является

function startperspective() { 

    $.getJSON("/Reporting/getperspective", function(data) { 
     var reg = new RegExp('^((0[1-9]{1}|[12]{1}[0-9]{1}|3[01]{1})\/(0[1-9]{1}|1[012]{1})\/[0-9]{4}$)'); 
     if (data !== null) { 
      $("#old_tab_handsontable").handsontable({ 
       data: data, 
       colHeaders: ['Date Perspective', 'Date Archive', 'Date des valeurs finales'], 
       columns: [ 
        {data: 'datePers', type: 'date', dateFormat: 'dd/mm/yy'}, 
        {data: 'dateArchive', type: 'date', dateFormat: 'dd/mm/yy'}, 
        {data: 'dateDef', type: 'date', dateFormat: 'dd/mm/yy'} 
       ], 
       colWidths: [200, 200, 200], 
       fillHandle: false, 
       onBeforeChange: function(data) { 
        for (var ind = data.length - 1; ind >= 0; ind--) { 
         if ((!reg.test(data[ind][3]))) { 
          data[ind][3] = data[ind][2]; 
          return false; 
         } 
         else { 
          if (data[ind][3] !== data[ind][2]) { 
           TabChange = true; 
           return true; 
          } 
         } 
        } 
       } 
      }); 
     } 
} 

TabChange является булевой, чтобы проверить, если у меня есть новая ячейка для сохранения или нет. Я думаю, что мне нужно что-то в «onBeforeChange» с моей стороны, но я не знаю, что.

И я хотел бы избежать изменения cellProperties, потому что он удалит datepicker для моей руки.

+0

, какую версию вы используете? – PostureOfLearning

ответ

1

Если я понял, что правильно, после изменения, вы хотите сравнить значения до и после, а если оно изменилось с одной даты на другую, тогда вы хотите покрасить эту ячейку зеленым цветом.

Если это так, то я хотел бы использовать afterChange

afterChange: function(changes, source){ 

    if (source=== 'loadData') { 
     return; //don't do anything as this is called when table is loaded 
    } 
    var rowIndex = changes[0]; 
    var col = changes[1]; 
    var oldCellValue = changes[2]; 
    var newCellValue = changes[3]; 

    //compare oldCellValue with newCellValue to ensure it is the change you are after 
    //you need to apply the logic you need but for example: 
    if(oldCellValue !== newCellValue){ 
     //Here you set the background color to green 
    } 
} 

Вы могли бы также проверить conditional formatting

Смежные вопросы