2015-04-16 2 views
0

Я использую Dojo 1.10, имею простой dojox.grid.DataGrid и хочу изменить цвет фона, а также цвет шрифта на основе данных.Как установить цвет фона строки в сетке dojo динамически

Я написал функцию onStyleRow myStyleRow (строка) { var item = grid.getItem (row.index); если (! Item) возвращение;

var mappingFlag = store.getValue(item, "flag", null); 
var mappingId = store.getValue(item, "matched_mapping_id", null); 

if(mappingFlag == 0){ 
    row.customStyles += " color:black;"; 
}else if(mappingFlag == 1){ 
    row.customStyles += " color:gray;"; 
}else if(mappingFlag == 2){ 
    row.customStyles += " color:red;"; 
}else if(mappingFlag == 3){ 
    if(mappingId == currentMappingId){ 
     row.customStyles += " color:blue; background-color:#fff000;"; 
    }else{     
     row.customStyles += " color:blue; background-color:#ffffff;"; 
    } 
} 

grid.focus.styleRow(row); 
grid.edit.styleRow(row); 

}

Что подвезти меня к хаосу является то, что цвет шрифта (синий/красный/серый), хорошо и отображается, но цвет фона не принимает никакого эффекта ...

Что случилось с моим кодом? как я могу изменить цвет фона строки?

Большое спасибо!

+0

Прошлой ночью я обнаружил в firebug, что это было потому, что я использую тему кларо в теге тела, в которой есть параметр фонового изображения в файле claroGrid.css, например. .claro .dojoxGridRowTable tr { \t background: url ("images/row_back.png") #fff repeat-x; } После того, как я удалю этот, он начал работать. Я вышел из css, я думаю, что есть лучший способ переопределить этот css, но не знаю ... – JohnZhang

ответ

1

Вот несколько документов, которые должны помочь вам:

Dojo сетки данных - Часть 32: Настройка цвета строк на основе строки данных:

http://xcellerant.net/2013/11/20/dojo-data-grid-30-setting-row-color-dynamically/

и ....

Dojo Data Grid - Часть 34: Настройка стилей ячеек, основанные на данных:

http://xcellerant.net/2014/01/15/dojo-data-grid-part-34-customizing-cell-styles-based-on-data/

0

сначала перепишите background-color из dojoxGridRow в transparent. затем установите цвет фона строки так, как вы хотите, установив grid.getRowNode(rowIndex).runtimeStyle.backgroundColor = color

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