防止ExtJS treenodes崩溃

时间:2011-04-08 06:06:51

标签: extjs

我正在向ExtJS TreePanel动态添加节点。我有一个用于打开新面板的节点的dblclick监听器。当我双击节点时,节点会自动折叠。

当我双击它时,我不希望节点崩溃。有没有办法阻止这种情况发生?

3 个答案:

答案 0 :(得分:2)

beforedblclick实施Node个事件;然后,每当触发事件时,查看节点是否展开,如果是,则返回false

来自ExtJS API documentation

  

beforedblclick :(节点这个,   Ext.EventObject e)

     

之前开火   双击处理。返回false   取消默认操作。

答案 1 :(得分:0)

我认为默认的TreePanel有一个默认的'onclick'监听器,响应相同:

if(node == 'open') {
    closeNode();
} 
else {
    openNode();
}

所以双击首先在第一次点击时打开,然后在第二次点击时关闭它。

您应该将监听器添加到treepanel中,如下所示:

new Ext.tree.AsyncTreeNode({
                expanded: true,
                children: [{
                    text: 'Menu Option 1',
                    leaf: true
                }, {
                    text: 'Menu Option 2',
                    leaf: true
                }, {
                    text: 'Menu Option 3',
                    leaf: true
                }]
            }),
            rootVisible: false,
            listeners: {
                click: function(n) {
                    return false;
                },
                dblclick: function(n) {
                    Ext.Msg.alert('Navigation Tree Click', 
                        'You clicked: "' + n.attributes.text + '"');
                }
            }

答案 2 :(得分:0)

对于树形网格(具有多列的树面板),这样做(ExtJS6):

listeners: {
    beforecelldblclick: function(){
        return false;
    }
}