0

MULTI 選択リストの値を取得する方法がわかりません。

メソッドを使用しようとしましたgetSelection。ただし、未定義であるというエラーが発生します。これが私のコードです:

refs : {
    optionlist : 'Overlayitemlist',
},
var reco= Ext.getCmp('optionlist').getSelection() ;

エラーは次のとおりです。

キャッチされていない TypeError: 未定義のメソッド 'getSelection' を呼び出せません

どこが間違っていますか?

4

2 に答える 2

1

イベントを利用しselectionchangeて複数選択を追跡し、それに基づいて、それらすべての値を配列内にプッシュできます。次に例を示します。

Ext.create('Ext.List', {
    fullscreen: true,
    mode: 'MULTI',
    store: {
        fields: ['name'],
            data: [{
            name: 'Red'
        }, {
            name: 'Orange'
        }, {
            name: 'Yellow'
        }, {
            name: 'Green'
        }, {
            name: 'Blue'
        }] // data
    }, // store
     itemTpl: '{name}',
     listeners: {
         selectionchange: function (list, records) {
            var names = [];
            Ext.Array.each(records, function (item) {
                names.push('<li>' + item.data.name + '</li>');
            });
            Ext.Msg.alert('You selected ' + records.length + ' item(s)', '<ul>' + names.join('') + '</ul>');
         } 
     } 
});
于 2013-02-01T15:36:53.813 に答える
0

Senhca のサイト (リンク) から更新された例を次に示します。どうやら彼らのデモでさえ正しく機能していないようです。

/*global Ext:false */
Ext.application({
    launch: function () {
        Ext.create('Ext.List', {
            fullscreen: true,
            mode: 'MULTI',
            store: {
                fields: ['name'],
                data: [{
                    name: 'Red'
                }, {
                    name: 'Orange'
                }, {
                    name: 'Yellow'
                }, {
                    name: 'Green'
                }, {
                    name: 'Blue'
                }] // data
            }, // store
            itemTpl: '{name}',
            listeners: {
                selectionchange: function (list, records) {
                    var names = [];
                    Ext.Array.each(list.selected.items, function (item) {
                        names.push('<li>' + item.data.name + '</li>');
                    }); // each()

                    Ext.Msg.alert('You selected ' + list.selected.items.length + ' item(s)');
                } // selectionchange
            } // listeners
        }); // create()
    } // launch
}); // application()
于 2014-09-26T12:33:33.007 に答える