【问题标题】:How to change node in TreeMenu?如何更改 TreeMenu 中的节点?
【发布时间】:2016-09-26 07:13:06
【问题描述】:

我有带有一些节点的 TreeMenu:

{
    text: 'Test',
    leaf: true
}

我在 TreeMenu 上附加了一个监听器:

listeners: {
  contextmenu: function(node, event) {

    ContextMenu.showAt(event.getXY());
    event.stopEvent();

  }
}

但我不知道如何更改节点:

// HTML don't changed
node.text = 'my value';

// Uncaught TypeError: node.reload is not a function
node.reload();

UPD

我是这样决定的:

node.setText('my value');

【问题讨论】:

    标签: extjs extjs3


    【解决方案1】:

    树必须有某种store / 根(NodeInterface)。只需更改 store/root 中的值,树就会自动更改。

    你永远不应该使用node.text = 'my value',因为在大多数情况下它不仅仅是简单的对象。你应该使用node.set('text', 'My Text');

    更改的处理函数可能如下所示:

        handler: function() {
            var tree = Ext.ComponentQuery.query('treepanel')[0];
            var child = tree.getRootNode().getChildAt(0);
            child.set('text', 'Chaned text');
        }
    

    检查这个小提琴:https://fiddle.sencha.com/#fiddle/1hc1

    我不确定您使用的是哪个 ExtJS 的确切版本?分机 3 ?在所有 Ext 版本中,这个概念或多或少应该是相同的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 2011-01-21
      • 2012-08-07
      • 1970-01-01
      相关资源
      最近更新 更多