在动态网格中进行分页和分组

时间:2012-12-18 05:16:41

标签: extjs4 extjs4.1 extjs-mvc

我正在使用动态网格plugin

我想在其中进行分页,

我试过了,

Ext.define('....', {
    extend: 'Ext.data.Store',
    pageSize: 10,
    proxy: {
        type: 'rest',
        url: me.url,
        reader: {
            type: 'dynamicReader',
            totalProperty: 'totalCount'
        }
    }
});

me.bbar = Ext.create('Ext.PagingToolbar', {
    store: me.store,
    displayInfo: true,
    displayMsg: 'Displaying topics {0} - {1} of {2}',
    emptyMsg: "No topics to display"
});

DynamicGrid.js totalProperty无效。我在那里正确设置了房产吗?

然后我也尝试在同一个插件中进行分组。

我有combobox个字段,想要动态选择分组字段。当我在组合框中选择一个字段时,它会将该数据发送到网格的groupField属性。

我在控制器中选择了组合框值,例如

var groupData = Ext.ComponentQuery.query('#groupid')[0].getValue();

我将它发送到网格,

Ext.define('Group', {
    singleton: true,
    param: groupData
});

我得到的是网格属性(在DynamicGrid.js中),比如,

groupField: [Group.param]

但是这会自动为groupField属性选择第一个字段,甚至在组合框中选择任何内容并进行分组,在组合框中选择其他字段也不起作用,它总是有第一个字段用于分组。

出了什么问题?请帮忙。

1 个答案:

答案 0 :(得分:0)

我通过在侦听器中添加以下代码成功进行分组,

me.store.group(Group.param);

仍然存在totalProperty的问题,有人可以帮助我使其工作吗?

我认为我犯了一个错误,现在实际的JSON响应是,

[{
    "userId": 123,
    "name": "Ed Spencer",
    "email": "ed@sencha.com"
}]

因此,获取数据和操作的代码工作得很好,

readRecords: function(data) {
    if (data.length > 0) {
        var item = data[0];
        var fields = new Array();
        var columns = new Array();
        var p;

        for (p in item) {
            if (p && p != undefined) {
                fields.push({name: p, type: 'floatOrString'});
                columns.push({text: p, dataIndex: p});
            }
        }
        data.metaData = { fields: fields, columns: columns };
    }
    return this.callParent([data]);
}

但是为了发送其他metaData属性,我应该从docs获得以下JSON响应,

{
    "count": 1,
    "ok": true,
    "msg": "Users found",
    "users": [{
        "userId": 123,
        "name": "Ed Spencer",
        "email": "ed@sencha.com"
    }],
    "metaData": {
        "root": "users",
        "idProperty": 'userId',
        "totalProperty": 'count',
        "successProperty": 'ok',
        "messageProperty": 'msg'
    }
}

那么我如何在readReords函数中指向root,以便它知道数据是否在root中?

因此我还会传递其他元数据属性。

请帮忙!