如何通过Ext.Ajax.request的响应通知selectfield元素?

时间:2012-06-03 15:53:21

标签: sencha-touch extjs sencha-touch-2 json sencha-architect

我需要从Ext.Ajax.request({})的回调中通知selectfield sencha元素

我有一个这样的代码,例如,

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: ''}
    ]
}

在这种情况下,我需要从回调Ext.Ajax.request通知“desc”和“value”字段,但我不知道。请帮帮我。

2 个答案:

答案 0 :(得分:1)

您可以通过更新selectfieldExt.Ajax.request通知store

您可以将商店声明为存储所有字段值,然后根据request的响应,您可以随机播放数据存储{{ 1}}被绑定。

E.g

selectfield

并在{ xtype: 'selectfield', store: sampleStore, valueField:'value', displayField:'desc', } 的响应中更新商店值,如下所示

Ext.Ajax.request

答案 1 :(得分:1)

你可以在下面

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)
            },
            ...
})

希望得到这个帮助。