如何 return 像数组一样的数据形成远程存储 extjs

how to return the data like a array form remote store extjs

我有带过滤器的网格,我想在过滤器上显示项目列表。通过关注过滤器选项,我应该看到一个带有复选框的项目列表,当我点击复选框时它应该发送参数。我通过以下方式实现了这一目标 加载本地数据,我想通过加载远程数据来实现相同的目标,我该如何实现。 { 数据索引:'adjustmentTypeDescription', 文本:'Adjustment
Type', stateId: 'adjustmentgrid_adjustmentTypeDescription', 筛选: { 类型:'list', 标签字段:'name', 数据索引:'adjustmentTypeId',

        store: Ext.create('Ext.data.ArrayStore', {
            fields: [{
                name: 'id',
                type: 'int'
            }, {
                name: 'name',
                type: 'string'
            }],
            data: [
                [2, 'AA'],
                [13, 'AFF'],
                [11, 'DDD'],
                [15, 'Dd'],
                [5, 'Fdsdt'],
                [6, 'Ide']
                [10, 'Return/Reject']
            ]
        })}

现在我想从服务加载这些数据。 我这样试过:

            store: Ext.create('Ext.data.ArrayStore', {
            autoLoad: false,
            model: 'ModelName',
                        /*fields: [{
                                name: 'adjustmentTypeId',
                                type: 'int'
                            }, {
                                name: 'description',
                                type: 'string'
                            }],*/
                        proxy: {
                            type: 'ajax',
                            url: 'servicurl',
                            timeout:120000,
                            reader: {
                                type: 'array',
                               // rootProperty: 'data',
                                rootProperty:function(data){
                                    debugger;
                                    return data;
                                    debugger;
                                    //console.log(bb);
                                }
                            }
                        }/*,
                        listeners: {
                            load: function(store, records, successful, 
                      operation, eOpts){
                                debugger;
                                var data = [];
                                for(var i = 0; i< 1; i++){

                   //data.push(records[i].data.description);
                                    var vare = new Array();
                                    vare[0]= records[i].data.description;
                                    data.push(vare);

                                }

                                store.loadData(data);
                                console.log(data);
                            }
                        }*/
            })

但没用 我如何通过调用服务和加载远程数据来实现这一点。

  1. 设置autoLoad: true

  2. 删除 reader 配置对象。由于您使用的是 ArrayStore,因此不需要这样做。并且数组数据是位置数据,因此不使用 rootProperty

  3. 检查您是否正确定义了模型字段。

应该可以。