1

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" フィールドを通知する必要があるのですが、わかりません。私を助けてください。

4

2 に答える 2

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

この助けを願っています。

于 2012-06-04T07:23:04.300 に答える
1

を更新することでselectfieldから に通知できます。Ext.Ajax.requeststore

すべてのフィールド値を格納するストアを宣言すると、 からの応答で、バインドされているデータ ストアをシャッフルrequestできます。selectfield

例えば

{
    xtype: 'selectfield',
    store: sampleStore,
    valueField:'value',
    displayField:'desc',
}

Ext.Ajax.request次のように の応答でストアの値を更新します。

Ext.StoreMgr.get('sampleStore').load();
于 2012-06-03T19:28:43.367 に答える