Обновление rootLabel dijit.Tree

Я пытаюсь обновить model.rootLabel dijit.Tree с помощью javascript. Я установил модель следующим образом:

<div data-dojo-id="brandsModel" data-dojo-type="dijit.tree.ForestStoreModel"
     rootId="0"
     rootLabel="Brands (15)"
     data-dojo-props="store:myStore, query:{}">

Для обновления дерева я расширил его следующим образом (этот код также работает с DND в дереве):

dojo.extend(dijit.Tree, { refreshModel:function() {
  this._itemNodesMap = {};
  // Collapse root node and set model children to null, so the model
  // will fetch again from the datastore when _expandNode() is called
  this._collapseNode(this.tree.rootNode);
  this.model.root.children = null;
  // Set root NODE to unchecked so that Tree will fetch from the model again
  this.rootNode.state = "UNCHECKED";
 //Set _loadFinished to false, so a new fetch is possible
 this.model.store._loadFinished = false;
 this._expandNode(this.tree.rootNode);
}
});

После добавления или удаления элементов из дерева я также пытаюсь обновить счетчик. Я пробовал :

tree.model.rootLabel = 'Brands (16)';
tree.model.root.label = 'Brands (16)';

Изменения отображаются при отладке с помощью console.debug(tree), но я не знаю, что использовать для отображения измененной метки.


person noru    schedule 29.06.2012    source источник


Ответы (1)


корневой узел не является фактическим элементом в магазине, и обновляются только элементы в «_itemNodesMap». вам нужно будет установить innerHTML узла rootnode's-labelnode.

tree.rowNode.set("label", "Brands ( " + tree._itemNodesMap.lenght + " )");
person mschr    schedule 29.06.2012
comment
Большое спасибо ! Он работал с: tree.rootNode.set(label, Brands (16)); - person noru; 29.06.2012