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)