dijit.如何在调用pasteItem后更新树

dijit.Tree: How to update tree after pasteItem call?

本文关键字:更新 pasteItem 调用 dijit      更新时间:2023-09-26

我有一个文件资源管理器树的树模型的自定义实现。该树还应该支持拖放,因此我将树的pasteItem方法编写如下:

pasteItem: function(childItem, oldParentItem, newParentItem, bCopy){
    var oldParentItemFiles = new Array();
    for(var idx in oldParentItem.files) {
        if(oldParentItem.files[idx].name != childItem.name) {
            oldParentItemFiles.push(oldParentItem.files[idx]);
        }
    }
    newParentItem.files.push(childItem);
    childItem.parent = newParentItem;
}

我调试了这个函数,就我所能看到的变量是正确修改的。然而,该函数被正确调用并运行而没有错误,并且显示拖放对话框,但树没有改变。

是否有像渲染()方法,我必须调用后?

我找到了答案:

树连接到模型的onChildrenChange, onChange和onDelete事件。所以,只要用适当的值调用模型树上的这些方法,它就会工作。如果您自己实现模型,请确保更改您的模型数据;)