Extjs: Как изменить атрибуты узла дерева? - PullRequest
4 голосов
/ 07 октября 2009

Как я могу изменить атрибуты узла дерева?

Один узел дерева имеет следующие атрибуты:

{"id":"75",
"description":"My Tree Node",
"status":"25"
"uiProvider":"col",
"leaf":true}

Теперь мой скрипт получает следующие данные

{
"id":"75",
"status":"100",
"cls":"done"
}

Я пытаюсь обновить атрибуты ( ОБНОВЛЕНО ):

// a.result.data has the new data and taskID is the node's id
for (var property in a.result.data)
{ 
  tree.getNodeById(taskID).attributes[property] = a.result.data[property];
}

Однако дерево не обновляется.

Как я могу заставить дерево показывать изменения? Мне нужен узел, чтобы изменить существующие атрибуты и добавить новые атрибуты.

Я ценю вашу помощь!

1 Ответ

2 голосов
/ 07 октября 2009

Из форумов extjs :

function refreshNodeColumns(n)
{
    var t = n.getOwnerTree();
    var a = n.attributes;
    var cols = t.columns;
    var el = n.ui.getEl().firstChild; // <div class="x-tree-el">
    var cells = el.childNodes;

    //<div class="x-tree-col"><div class="x-tree-col-text">

    for(var i = 1, len = cols.length; i < len; i++)
    {
        var d = cols[i].dataIndex;
        var v = (a[d]!=null)? a[d] : '';
        if (cols[i].renderer) v = cols[i].renderer(v);
        cells[i].firstChild.innerHTML = v;        
    }
} 

Должно работать, если вы вызываете его после цикла обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...