Javascript EXTJS树面板禁用选择更改

Javascript EXTJS树面板禁用选择更改,javascript,extjs,selection,treepanel,Javascript,Extjs,Selection,Treepanel,我有一个树面板: xtype : 'treepanel', itemId : 'field-tree-command-metas', region : 'center', hideHeaders : true, rootVisible : false, emptyText : 'No Commands Available', deferEmptyText : true,

我有一个树面板:

        xtype : 'treepanel',
        itemId : 'field-tree-command-metas',
        region : 'center',
        hideHeaders : true,
        rootVisible : false,
        emptyText : 'No Commands Available',
        deferEmptyText : true,
        bufferedRenderer : false,
        reference : 'treeCommandMetas',
        bind : {
            selection : '{bindSelection}'
        },
        listeners : {
            boxready : function() {
                var treeView = this.getView();
                treeView.refresh();
            }
        },
        columns : [ {
            xtype : 'noicontreecolumn',
            dataIndex : 'name',
            flex : 1,
            nodeIconsProvider : function(record) {
                if (record.isLeaf()) {
                    return [ '<i class="' + Glyphs.getIconClass('square-o', 'size-14px') + '"></i>' ];
                }

                if (record.isExpanded()) {
                    return [ '<i class="' + Glyphs.getIconClass('folder-open-o', 'fa-lg') + '"></i>' ];
                }

                return [ '<i class="' + Glyphs.getIconClass('folder-o', 'fa-lg') + '"></i>' ];
            }
        } ],
        displayField : 'name',
        store : 'Plugin.scheduler.store.CommandMetaStore'
xtype:'treepanel',
itemId:“字段树命令元”,
地区:'中心',
隐藏者:没错,
rootVisible:false,
emptyText:“没有可用的命令”,
deferEmptyText:true,
bufferedRenderer:错,
参考:“treeCommandMetas”,
绑定:{
选择:“{bindSelection}”
},
听众:{
boxready:function(){
var treeView=this.getView();
treeView.refresh();
}
},
列:[{
xtype:'noicontreecolumn',
数据索引:“名称”,
弹性:1,
NodeConsProvider:函数(记录){
if(record.isLeaf()){
返回[''];
}
if(record.isExpanded()){
返回[''];
}
返回[''];
}
} ],
displayField:'名称',
store:'Plugin.scheduler.store.CommandMetaStore'
在此树中加载的表单上,将选择一条记录。 是否可以禁用其他选择?我的意思是,若选择了树中的某些内容,用户就不能更改选择。
尝试了“disableSelection:true”,但它禁用了所有选择,我希望默认情况下所做的选择可见。

您可以使用
setLocked
禁用其他选择:

treepanel.getSelectionModel().setLocked(true);
如果要启用选择,可以使用相反的选项:

treepanel.getSelectionModel().setLocked(false);

这里有一个使用ExtJS 4.2.1的示例:

实现beforeselect侦听器,并使其返回false以禁用鼠标单击选择:

listeners:{
    boxready : your boxready function,
    beforeselect :function(){
        return false;
    }
}
然后,无论何时单击树的任何一行,选择都不会更改

以下是api的解释:

在选择之前(此、记录、索引、EOPT)
在选择记录之前激发。如果任何侦听器返回false,则取消选择。 请参阅


已尝试,禁用所有选择,不取决于选择方式(EXTJS 5.1)