Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Настройка значков узла в TreePanel

Автор вопроса: ShashwatОтветов: 2

ExtJS 4:

Я создал панель дерева. Я хотел установить свои собственные значки для его узла, поэтому я использовал свойство iconCls для каждого узла. Это работает. Но когда я расширяю узел, он возвращается к своему обычному значку "Открыть папку".

var treeObject = {
text: "BANK OF AMERICA 1",
cls: "enterprise",
children: [
    {
        text: "core outputs",
        cls: "businessUnit",
        iconCls: 'abc'
    }
],
iconCls: 'abc',
leaf: "false",
expanded: true,
type: "enterprise"
}
treePanel.setRootNode(treeObject);

Пожалуйста, предложите что-нибудь, чтобы избежать этой проблемы.

javascriptwindowextjsextjs4

Ответы

Ответ 1 · рейтинг 1 · elweilando

попробуйте указать свой класс css таким образом, чтобы предотвратить переопределение с классами extjs по умолчанию

.x-grid-tree-node-expanded .x-tree-icon-parent.abc{
  background: url(abc) x y no-repat !important;
}

Ответ 2 · stambikk

Начиная с Ext Js 4.0.6, вы можете использовать icon config на Ext.data.NodeInterface для установки значков ваших узлов - просто определите поле с именем "значок" в своей модели, используйте его для своего хранилища деревьев...

Ext.define('ModelForTreeNodes', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'icon', type: 'string', defaultValue: "Images/nodeicon.png" },
        // other fields
    ],
    // other config options
});

Затем вы можете изменить значок, просто установив поле значка на узле... и все.

var node = myTree.getStore().getNodeById(nodeId);
node.set('icon', 'Images/newIcon.png');

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы