Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sencha touch 如何从Ext.Ajax.request的响应中通知selectfield元素?_Sencha Touch_Extjs_Sencha Touch 2_Json_Sencha Architect - Fatal编程技术网

Sencha touch 如何从Ext.Ajax.request的响应中通知selectfield元素?

Sencha touch 如何从Ext.Ajax.request的响应中通知selectfield元素?,sencha-touch,extjs,sencha-touch-2,json,sencha-architect,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.coo

我需要从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”字段,但我不知道。请帮帮我。

您可以从
Ext.Ajax.request
通知
selectfield
,方法是更新它的
store

您可以声明一个存储区来存储所有字段值,然后在响应
请求时,您可以洗牌绑定到
selectfield
的数据存储区

例如

并更新
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)
            },
            ...
})
希望这有帮助

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