1

Ext.ux.form で ItemSelector を使用しています。Selected 列にいくつかのデフォルト値を設定する必要があります。Available 列を正しく設定できますが、toField のストアをデフォルト値に設定しようとすると、Available 列になってしまいます。以下はコード スニペットです。誰か助けてくれませんか?

                                 var data = [{"name":"abcd"}];

                                 var ds = SailPoint.Store.createStore({
                                    url: CONTEXT_PATH + '/define/applications/discoverServers.json',
                                    fields: ['name','value'],
                                    autoLoad: true,
                                    baseParams: {domain : domain},
                                    listeners: {
                                                load: function() {
                                                alert('store loaded');
                                            }
                                        }
                                });

                                var itemselectorField = new Ext.Panel({
                                    title: 'Select Servers',
                                    width: 700,
                                    id:'selectServerId',
                                    bodyPadding: 10,
                                    height: 300,
                                    renderTo: 'itemselector',
                                    layout: 'fit',
                                    items:[{
                                        xtype: 'itemselector',
                                        name: 'itemselector',
                                        id: 'itemselectorField',
                                        anchor: '100%',
                                        imagePath: '../images/extjs-ux/',
                                        store: ds,
                                        displayField: 'name',
                                        valueField: 'name',
                                        allowBlank: false,                                          
                                        msgTarget: 'side',
                                        fromTitle: 'Available',
                                        toTitle: 'Selected',
                                        listeners: {
                                            afterrender: function() {
                                                    Ext.getCmp('itemselectorField').toField.store.loadData(data);
                                                    Ext.getCmp('selectServerId').doLayout();
                                                    alert("After Render");
                                            }
                                        }
                                    }
                                ]
                                });
4

1 に答える 1

1

itemselector フィールドの setValue メソッドを使用する必要があります。リスナー オブジェクトは次のようになります。

listeners: {
    afterrender: function(field) { //Add the field argument to the afterrender
        var a = []; // The setValue method receives an Array
        for(var key in data) {
            a.push(data[key].name);
        }
        field.setValue(a);
    }
}

あなたが見ることができるようにフィドル: https://fiddle.sencha.com/#fiddle/gue

于 2015-01-22T15:03:55.937 に答える