EXTJS树面板禁用选择更改

时间:2015-06-01 15:11:15

标签: javascript extjs selection treepanel

我有树小组:

var p1 = new Promise(
        // The resolver function is called with the ability to resolve or
        // reject the promise
        function(resolve, reject) {
            log.insertAdjacentHTML('beforeend', thisPromiseCount +
                ') Promise started (<small>Async code started</small>)<br/>');
            // This only is an example to create asynchronism
            window.setTimeout(
                function() {
                    // We fulfill the promise !
                    resolve(thisPromiseCount);
                }, Math.random() * 2000 + 1000);
        });

在此树中加载的表单上,选择了一条记录。 是否可以禁用其他选择?我的意思是如果选择了树中的某些内容,则用户无法更改选择。 尝试&#39;禁用选择:真&#39;但是它会禁用所有选择,我希望默认选择是可见的。

2 个答案:

答案 0 :(得分:1)

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

treepanel.getSelectionModel().setLocked(true);

如果要启用选择,可以使用反向:

treepanel.getSelectionModel().setLocked(false);

我在这里使用ExtJS 4.2.1:https://fiddle.sencha.com/#fiddle/nqf

答案 1 :(得分:0)

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

listeners:{
    boxready : your boxready function,
    beforeselect :function(){
        return false;
    }
}

然后,无论何时单击树的任何行,选择都不会更改。

这是api解释:

  

beforeselect (this,record,index,eOpts)
  在选择记录之前触发。如果任何侦听器返回false,则取消选择。   请参阅api doc here