0

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

4

1 回答 1

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 的人,你不能这样做(或者至少你不应该这样做)

于 2012-11-08T04:24:32.317 回答