Как заполнить выбранный столбец в 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/