为什么我的树子节点id不是我在ExtJS中设置的?

时间:2012-11-08 03:36:22

标签: extjs

我动态地将子项附加到树节点。我希望子节点有id,record.id。但是我从ExtJS获得了生成的id。     parent.appendChild({     id:record.id,     text:record.value     });

1 个答案:

答案 0 :(得分:0)

那是因为你混淆了两个不同的概念。每个树节点都有一个可视化表示,然后是一个模型,有两个id:可视元素id和模型id。

您正在设置模型ID而不是可视元素ID。请看一下这段代码:

var store = Ext.create('Ext.data.TreeStore', {
    root: {
        expanded: true,
        children: []
    }
});

var tree = Ext.create('Ext.tree.Panel', {
    title: 'Simple Tree',
    width: 200,
    height: 150,
    store: store,
    rootVisible: false,
    renderTo: Ext.getBody()
});

var root = tree.getRootNode();
var appendedRecord = root.appendChild({id: 1, text: 'juan'});
alert('component id: ' + appendedRecord.id + '    model id: ' + appendedRecord.get('id'));​

更好的是,请在这里查看jsfiddle中的相同代码,别忘了按Run

http://jsfiddle.net/HReqT/

<强>更新

Extjs是谁分配视觉元素id,你不能这样做(或者至少你不应该这样做)