Javascript 如何防止删除、编辑和拖动树中的记录。Extjs

Javascript 如何防止删除、编辑和拖动树中的记录。Extjs,javascript,extjs,Javascript,Extjs,在Ext.tree.Panel中,编辑记录由行编辑插件完成。 如何防止删除或编辑最顶端的根记录 以及如何禁止拖动除子节点以外的顶部记录 拖动是使用treeviewdragdrop插件完成的。 下面是插件代码 ... plugins: [{ ptype: 'rowediting', clicksToMoveEditor: 1, autoCancel: false, listeners: { afteredit

在Ext.tree.Panel中,编辑记录由行编辑插件完成。 如何防止删除或编辑最顶端的根记录

以及如何禁止拖动除子节点以外的顶部记录

拖动是使用treeviewdragdrop插件完成的。 下面是插件代码

...
plugins: [{
        ptype: 'rowediting',
        clicksToMoveEditor: 1,
        autoCancel: false,
        listeners: {
            afteredit : function (editor, context, eOpts ){
                context.store.reload();

            },
            canceledit : function ( editor, context, eOpts ){
                context.store.reload();

            }
        }
    }],
    viewConfig: {
        plugins: [{
            ptype: 'treeviewdragdrop',
            containerScroll: true
        }]
    }, 
...

例如,在app/view/QuestionTree.js文件中,为了防止编辑,可以使用事件返回false并取消操作。和防止跌落的方法相同。以下是(在
QuestionTree.js
)中的答案



为了添加到解决方案中,为了防止拖动最上面的记录,您还可以使用:

       listeners: {
            viewready: function (tree) {
                var view = tree.getView(),
                    dd = view.findPlugin('treeviewdragdrop');

                dd.dragZone.onBeforeDrag = function (data, e) {
                    var rec = view.getRecord(e.getTarget(view.itemSelector));
                    return rec.isLeaf();
                };
            }
        }

你说的是文件夹吗?是的,
top records
it folders非常感谢你
listeners: {
    beforedrop: function (node, data, overModel, dropPosition) {
        return data.records[0].isLeaf();
    }
},
       listeners: {
            viewready: function (tree) {
                var view = tree.getView(),
                    dd = view.findPlugin('treeviewdragdrop');

                dd.dragZone.onBeforeDrag = function (data, e) {
                    var rec = view.getRecord(e.getTarget(view.itemSelector));
                    return rec.isLeaf();
                };
            }
        }