2012-02-20 1 views
0

Я работаю с сеткой Sigma, заполняя ее с PHP. Предполагается, что у Sigma есть функция обработки формул, но она, похоже, работает только с загруженными JS наборами данных. Поэтому мне было интересно, можно ли изменить некоторые из ячеек после загрузки страницы, включите формулы, похожие на электронные таблицы?Как имитировать таблицу

Это код, созданный с помощью Sigma (одна строка из него): 19 2012-02-11 Bob LB 128 0 0 0


Так что эффект, который я хочу, чтобы это взять последнюю ячейку, и добавить предыдущие 3 значения ячеек (внутри td и div каждый).

Идеи?

+0

ОК, так что я не получил повесить кода форматирования еще здесь! каждый из этих пунктов выше - < td >< div> item < /div> – Onyx

ответ

0

Добавьте следующий к gridoption

onCellClick: function(value, record , cell, row, colNo, rowNo,columnObj,grid){ 

overRowNo=rowNo; 
overColNo=colNo; 
cellValue=value; 

}, 
afterEdit: function( value, oldValue, record, col, grid){ 
// ordered trays calculation 
    if(overColNo == 5 || overColNo == 6){  
    var text = $(this.activeCell).find('div.gt-inner').text();console.log(text); 
    if (!$.isNumeric(text)){ //jquery's isnumeric function 
     alert ('Please enter a valid number.'); 
     // because cell 5 is a drop down select we don't need to scan for bad input; this is only for cell 6 - ordered cells 
     text = 0; 
    } 
      var traycode = mygrid.getColumnValue(5,overRowNo); 
      var ordcells = mygrid.getColumnValue(6,overRowNo); 
      if (parseInt(traycode) >0) { 
      tray = parseInt(traycode); 
      } else { 
       tray=text; 


     } 
      if (parseInt(ordcells) >0) { 
      ordcell = parseInt(ordcells); 
      } else {    
       ordcell= $('input.gt-editor-text').first().val(); 
     } 
     //alert(tray+' '+ordcell); 
     if (tray > 0 && ordcell > 0) var ordtrays = Math.ceil(ordcell/tray); 
     if (ordtrays > 0){ 
     mygrid.setColumnValue('ordered_trays',overRowNo,ordtrays); 
     mygrid.updateEditState(); 
      mygrid.activeRecord.ordered_trays = ordtrays; 

    mygrid.refresh(); 
    } 
    } 
+0

этот ответ использует правильные методы сигма-сетки, обрабатывать обновления записей, а также добавлять записи и обрабатывать новые значения перед добавлением. – Onyx

0

Выяснилось. Этот код будет примерно применим только к кому-то, использующему сетку Sigma.

Загрузите это как отдельный JS-файл в заголовок. Он будет инициировать пересчет
каждый раз, когда ячейка изменяется, тем самым предлагая возможность программирования программируемых формул.

//now load the values from the retrieved table, after a change initiated by user 
$(window).change(function() { 

    //all formulae go below here: 
// Ordered trays formula 
$('table.gt-table tbody tr').each(function() { 
    var tray = 0; 
    var ordcell = 0; 

var traycode= $(this).find("td.gt-col-mygrid1-trays_code div").html(); 
var ordcells= $(this).find("td.gt-col-mygrid1-ordered_cells div").html(); 
if (parseInt(traycode) >0) { 
    tray = parseInt(traycode); 
    } else { 
    tray = 0; 
} 
    if (parseInt(ordcells) >0) { 
    ordcell = parseInt(ordcells); 
    } else { 
    ordcell = 0; 
} 
if (tray > 0 && ordcell > 0) var ordtrays = ordcell/tray; 
if (ordtrays > 0){ 
    $(this).find("td.gt-col-mygrid1-ordered_trays div").html(ordtrays); 
} 
}); 
// end Ordered trays formula 


}); // end the window change function 
+0

На самом деле это неправильно для сигма-сетки, поскольку оно хранит все его значения в памяти. – Onyx

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

  • Нет связанных вопросов^_^