Я создал дерево, содержащее информацию о сервере и его виртуальных машинах. Я хочу изменить значок виртуальной машины на зеленый, если VM включена или красная, если VM отключена. Как это достичь?Как изменить значок листового узла в дереве dojo?
0
A
ответ
0
Создайте функцию для переключения класса CSS-узла дерева в зависимости от того, включена ли виртуальная машина.
ar iconFunc = dojo.hitch(this, function (item, opened) {
if(item !== undefined && item !== null) {
if (item.VmOn!== undefined) {
return "VmOn";
}
else {
return "VmOff";
}
}
});
При создании дерева, передать iconFunc в конструкторе Params:
var treeParams = {
getIconClass : iconFunc, //attach the custom icon function
...};
var myTree = new dijit.Tree(treeParams);
Затем создать стили CSS называемых VM и VmOff:
.VmOn {
background: url(path to your image for VmOn) no-repeat;
В магазине предметы, которые составляют для узлов дерева потребуется свойство VmOn или VmOff или изменить значокFunc для проверки предметов магазина по-другому ...
3
Это может быть еще один способ сделать то же самое,
getIconStyle:function(item, opened){
if(!item.root){
if(!item.children){
// Style the nodes that not have childrens
return {backgroundColor: "red"};
}else{
// Style the nodes that have childrens
return {backgroundColor: "blue"};
}
}else{
// Style the root node here
return {backgroundColor: "orange"};
}
}
вы также можете использовать getIconClass вернуть соответствующее имя класса CSS.