Hi:
I am adding some fields (31) to a datagrid. They are added dynamically depending on user inputs.
I want to use just one styler function for all the 31 fields, but I need the field-name to make decisions inside the styler code.
The styler function recives only three parameters:
value: the field value.
rowData: the row record data.
rowIndex: the row index.
How can I send the field-name?
I have tried the next with no luck:
function modificaGrid(){
var numDias = $('#inpDiffDays').val();
var jsDate = js2_parserDate( $('#inpFechaD').datebox('getValue') );
var newCols = [];
for (i=1;i<=numDias;i++) { /* numDias = 31 */
var campo = 't-eh-&1'.replace('&1',i);
var diaAlfa = js2_weekDay(jsDate);
var title = '&1 &2-&3'
.replace('&1',diaAlfa.substr(0,2))
.replace('&2',('0'+(jsDate.getMonth()+1)).slice(-2))
.replace('&3',('0'+jsDate.getDate()).slice(-2));
var col = {
field:campo, title:title, width:60, align:'center',
styler:function(value,row,index){ console.log('inside styler: ', campo);
local_tehStyler(value,row,index,campo);
},
/* here: campo inside styler = the last value (t-eh-31), but every field value is OK!! */
};
newCols.push(col);
jsDate = js2_addDaysToDate(jsDate,1);
}
var cols = g_dfltCols.concat(newCols); newCols=[];
console.log(cols);
$('#dg').datagrid({columns:[cols]}); cols=[];
}
with this code:
styler:function local_tehStyler(value,row,index,campo){console.log('inside styler: ', campo);},
the campo is undefined!
The styler function is something like:
function local_tehStyler(value,row,index,campo){
var numColor = null;
console.log(campo);
var numField = last-part-of-the-field-name(campo);
var anotherField = 't-por-&1'.replace('&1',numField);
var tpor = row[anotherField];
if (tpor=='R') numColor=14; else if(tpor=='W') numColor=6; else if (tpor=='M') numColor=12
else if(tpor=='O') numColor=13;
return 'background:&1;'.replace('&1',js1_traduceNumColor(numColor));
}
MTIA.