Как заполнить выбранный столбец в ItemSeclector значениями по умолчанию в Ext-JS

Я использую ItemSelector в Ext.ux.form. Мне нужно заполнить выбранный столбец с некоторыми значениями по умолчанию. Я могу заполнить столбец Доступно правильно, но когда я пытаюсь установить для хранилища toField значения по умолчанию, он попадает в столбец Доступно. Ниже приведен фрагмент кода. Может ли кто-нибудь помочь мне?

                                 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");
                                            }
                                        }
                                    }
                                ]
                                });

1 ответ

Решение

Вы должны использовать метод setValue вашего поля itemselector. Ваш объект слушателя должен выглядеть следующим образом:

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/

Другие вопросы по тегам