2015-03-05 4 views
0

Я использую компонент dojo gridx, и я хочу отформатировать каждую ячейку на основе значения ячейки, я могу сделать стиль для каждой ячейки, написав функцию форматирования для каждого столбца, когда определение структуры макета, но можно написать обобщенную функцию форматирования, который может быть использован для всех столбцовячейка стиля на основе значения ячейки в dojo gridx

gridStructure: [ 
{ 
"field": "americaGeoValue", 
"name": "Americas", 
formatter: infoFormatter 
}, 
{ 
"field": "emeaGeoValue", 
"name": "EMEA", 
formatter: infoFormatter 
}, 
{ 
"field": "apGeoValue", 
"name": "AP", 
formatter: infoFormatter 
} 
] 

это, как я устанавливаю данные для сетки

storedata<portlet:namespace/>.push(
           { 
            "siteLabel": site.siteLabel, 
            "siteCode": site.siteCode, 
            "americaGeoValue": site.americaGeoValue, 
            "emeaGeoValue": site.emeaGeoValue, 
            "apGeoValue": site.apGeoValue 
           } 
          ); 

функции форматировщик:

function infoFormatter(data) { 
console.log('formatter item'+JSON.stringify(data)); 
} 

это журнал

{"siteLabel":"test","siteCode":"test","americaGeoValue":"1","emeaGeoValue":"2","apGeoValue":"8"} 

Итак, как же я написать общий форматировщик проверить значение (americaGeoValue/emeaGeoValue/apGeoValue) и сделать что-то на основе значения.

ответ

0

Если вы хотите, чтобы стиль ячейки на основе значения, вместо «форматировщика», попробуйте «класс» или «стиль», которые являются функциями, принимающих ячеек в качестве параметра, как,

{ 
    "field": "emeaGeoValue", 
    "name": "EMEA", 
    "class": function(cell){ 
     if(cell.rawData()=='ABC'){ 
      return 'customClsForCell'; 
     } 
    } 
    } 
Смежные вопросы