У меня типичная проблема здесь, я пытаюсь реплицировать структуру папок на сервере с помощью TreePanel. Сценарий заключается в том, что у меня есть папки, в которых есть повторные дети. то есть имя файла/папки совпадает с именем Node id
. Когда я пытаюсь развернуть и свернуть, родитель не может сопоставить 2 детям, а раздвоение создает дубликаты папок.Развернуть и свернуть Ext js treepanel некорректное поведение для повторяющихся листовых узлов
кода перед добавлением узла, я расширил дерево, как,
Ext.define("my.widget.ContentTree",
{
extend: "Ext.tree.Panel",
alias: "widget.my_content_tree",
...
// beforeappend event required for node initialization
this.store.on("beforeappend", onBeforeAppendNode, this);
this.store.on("append", onAppendNode, this);
И эта строка коды логики перед добавлением узла.
function onBeforeAppendNode(parent, newNode) {
/* ext js expands & collapses the tree w.r.t internalId. This Id is by
default set to the node ID. Appending the parent id to the child with
additonal timestamp ensures that there cannot be duplicate IDS
No adverse effects if the internal ids are changed. its neither persisted
nor any state is maintained w.r.t to internal ID.*/
// Important Line Start
if(parent!=null)
newNode.internalId=newNode.internalId+"_"+parent.get("id")+"_"+Math.round(new
Date().getTime()) ;
// Important Line End
var nid = newNode.get("id");
...
Моя логика в том, что я изменяю internalID дерева, добавляя его с родительским идентификатором & метку времени.
Мой вопрос: если мой подход верен? потому что я пытаюсь найти EXT js API, который делает это, но я не смог найти его.
Может ли кто-нибудь помочь.
спасибо.
Спасибо, я тоже думал точно так же. Планирование изменения класса модели для лучшей ремонтопригодности :). Спасибо. – chaosguru