Как сообщить элементу selectfield из ответа Ext.Ajax.request?
Мне нужно сообщить элементу sencha selectfield из обратного вызова Ext.Ajax.request({})
У меня есть этот код, например,
Ext.Ajax.request({
url: '/express/EXPRESSVE00007_es.jsp',
timeout: 90000,
params: {
evento : action,
cookie: document.cookie,
NAME : Ext.getCmp("txtName").getValue(),
LAST : Ext.getCmp("txtLast").getValue(),
SEX : Ext.getCmp("txtSex").getValue()
},
success: function(r, o) {
var response = r.responseText
response = response.trim()
response = response.replace('\n', '').replace('\r', '')
var jsonResponse = Ext.decode(response)
Ext.Msg.alert(jsonResponse)
},
failure: function() {
Ext.Msg.show({
title: "Failure",
msg: "Error, failed response",
buttons: Ext.Msg.OK,
icon: Ext.MessageBox.ERROR
})
}
})
и мой выбор,
{
xtype: 'selectfield',
id: 'selSex',
name: 'select',
label: '*Sex',
placeHolder: 'Select...',
displayField: 'desc',
hiddenName: 'second-select',
options: [
{desc: '', value: ''},
{desc: '', value: ''}
]
}
В этом случае мне нужно сообщить поля "desc" и "value" из обратного вызова Ext.Ajax.request, но я не знаю. Пожалуйста, помогите мне.
2 ответа
Вы можете сообщить selectfield
из Ext.Ajax.request
обновив это store
,
Вы можете объявить хранилище для хранения всех значений полей, а затем по ответу от request
, вы можете перемешать хранилище данных, в которое selectfield
привязан.
Например
{
xtype: 'selectfield',
store: sampleStore,
valueField:'value',
displayField:'desc',
}
и обновить значения магазина на Ext.Ajax.request
ответ, как это,
Ext.StoreMgr.get('sampleStore').load();
Вы можете сделать ниже
Test = Ext.regModel('Test', {
fields: [{
name: 'desc',
type: 'string'
}, {
name: 'value',
type: 'string'
}]
});
exStores = new Ext.data.Store({
model: 'Test',
autoLoad: false });
и выберите поле
{
xtype: 'selectfield',
store: exStores,
id: 'selSex',
name: 'select',
label: '*Sex',
placeHolder: 'Select...',
valueField:'value',
displayField:'desc',
}
и запрос ajax
Ext.Ajax.request({
...
success: function(r, o) {
var response = r.responseText
response = response.trim()
response = response.replace('\n', '').replace('\r', '')
var jsonResponse = Ext.decode(response)
exStores.loadData(jsonResponse, false);
Ext.Msg.alert(jsonResponse)
},
...
})
Надеюсь, это поможет.