【问题标题】:Prevent ExtJS treenodes from collapsing防止 ExtJS 树节点崩溃
【发布时间】:2011-04-08 06:06:51
【问题描述】:

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

我不希望节点在双击时折叠。有没有办法阻止这种情况发生?

【问题讨论】:

    标签: extjs


    【解决方案1】:

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

    来自ExtJS API documentation

    beforedblclick : ( 节点 this, Ext.EventObject e)

    之前触发 双击处理。返回假 取消默认操作。

    【讨论】:

      【解决方案2】:

      我认为默认的 TreePanel 有一个默认的“onclick”侦听器,它的响应相似:

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

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

      您应该像这样向树形面板添加一个侦听器:

      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 + '"');
                      }
                  }
      

      【讨论】:

        【解决方案3】:

        对于树形网格(具有多列的树形面板),这是为我完成的(ExtJS6):

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

        【讨论】:

          猜你喜欢
          • 2010-11-05
          • 1970-01-01
          • 2013-03-20
          • 1970-01-01
          • 2017-01-26
          • 1970-01-01
          • 2013-12-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多