我在这里有一个典型的问题,例如,我正在尝试使用 TreePanel 在服务器上复制文件夹结构。情况是我有一些文件夹有重复的孩子。也就是说,文件/文件夹名称相同,即Node id
. 当我尝试展开和折叠时,父级无法映射到 2 个子级,并且展开正在创建重复文件夹。
附加节点之前的代码是,我已经扩展了树,
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");
...
我的逻辑是我通过附加父 ID 和时间戳来更改树的内部 ID。
我的问题是,如果我的方法是正确的?因为我试图找到一个执行此操作的 EXT js API,但我找不到一个。
任何人都可以请帮忙。
谢谢你。