如何更改树节点的属性?
一个树节点具有以下属性:
{"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];
}
但是,树不会更新。
如何让树显示更改? 我需要节点来更改现有属性并添加新属性。
感谢您的帮助!
答案 0 :(得分:2)
来自extjs forums:
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;
}
}
如果在更新循环后调用它,则应该有效。