1

我有一个树形面板,当我选择http://jsfiddle.net/kTedM/时尝试获取节点

 Ext.create('Ext.tree.Panel', {
        title: 'Simple Tree',
        width: 200,
        height: 200,
        store: store,
        rootVisible: false,
        dockedItems: [{
            xtype: 'toolbar',
            items: {
                text: 'Get Selected nodes',
                handler: function(){
                    var s = this.up('panel').getSelectionModel().getSelection();
                    if (s[0])
                        alert(s[0].data.text + ' was selected');
                    else alert('no selected');
                }
            }
        }],
        renderTo: Ext.getBody()
    });

但是,如果您按照以下步骤操作,您将看到错误。

step1:运行代码并点击get selected nodes你会得到正确的警报是no selected

step2:双击homework节点,点击get selected nodes你会看到

在此处输入图像描述

但我看到那个节点没有被选中?怎么解决 谢谢

4

1 回答 1

2

实际上,“作业”节点并且应该被选中。没有理由双击它应该取消选择它。

错误是选择此节点的事实没有正确地在视觉上表示。显然是一个错误。

Sencha 在 Ext4.2 中已修复此问题。请参阅您的小提琴的此更新;我刚刚将版本更改为 4.2.0 并没有什么令人惊讶的事情发生......

所以,要回答你的问题,我想说,为了修复它,你只需要升级到最新版本。我建议反对引入几个新错误的最后一个 4.2.1,而是针对 4.2.0.x。

现在,这里有一些代码,因为我被 SO 强迫发布一些以便被允许链接到小提琴:

// Same code as you
Ext.onReady(function () {
    var store = Ext.create('Ext.data.TreeStore', {
        fields: [
                {name: 'id',     type: 'string'},
                {name: 'text',     type: 'string'},
                {name: 'selected', type: 'string'}
        ],
        root: {
            expanded: true,
            id: '0',
            children: [{
                text: "detention",
                id: '1',
                leaf: true
            }, {
                text: "homework",
                id: '2',
                expanded: true,
                children: [{
                    id: '3',
                    text: "book report",
                    leaf: true
                }, {
                    id: '4',
                    text: "alegrbra",
                    leaf: true,
                    selected: 'true'
                }]
            }, {
                id: '5',
                text: "buy lottery tickets",
                leaf: true
            }]
        }
    });

    Ext.create('Ext.tree.Panel', {
        title: 'Simple Tree',
        width: 200,
        height: 200,
        store: store,
        rootVisible: false,
        dockedItems: [{
            xtype: 'toolbar',
            items: {
                text: 'Get Selected nodes',
                handler: function(){
                    var s = this.up('panel').getSelectionModel().getSelection();
                    if (s[0])
                        alert(s[0].data.text + ' was selected');
                    else alert('no selected');
                }
            }
        }],
        renderTo: Ext.getBody()
    });
});
于 2013-09-19T20:34:45.660 回答