【问题标题】:how to return the data like a array form remote store extjs如何像数组形式远程存储extjs一样返回数据
【发布时间】:2017-10-19 18:43:46
【问题描述】:

我有带有过滤器的网格,在过滤器上我想显示一个项目列表。通过关注过滤器选项,我应该看到带有复选框的项目列表,当我单击复选框时,它应该发送参数。我通过 加载本地数据,我想通过加载远程数据来实现它。 { dataIndex: 'adjustmentTypeDescription', text: '调整
类型', stateId: 'adjustmentgrid_adjustmentTypeDescription', 筛选: { 类型:'列表', 标签字段:'名称', dataIndex: '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);
                            }
                        }*/
            })

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

【问题讨论】:

    标签: arrays extjs extjs5 extjs6 extjs6-classic


    【解决方案1】:
    1. 设置autoLoad: true

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

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

    它应该可以工作。

    【讨论】:

    猜你喜欢
    • 2012-01-28
    • 2014-05-01
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 2013-09-17
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多