Extjs 4.2 grid 分页问题,点击下一页参数没带过去

最初的store写法:

var store = Ext.create('Ext.data.Store', {
    model: 'PKU',//这个地方CarPKU不是一个对象,而是一个类
    remoteSort: false,
    remoteFilter: true,
    pageSize: limitCarPKU,  //页容量20条数据
    method: 'POST',
    proxy: {//代理
        type: 'ajax',
        url: '/Handler/PKUCarHandler.ashx?Func=PKUCarUnites',
        extraParams: {
            TrademarkId: Ext.getCmp('TrademarkId').getValue(),
            SubTrademarkId: Ext.getCmp('SubTrademarkId').getValue(),
            SeriesId: Ext.getCmp('SeriesId').getValue(),
            ModelNumberId: Ext.getCmp('ModelNumberId').getValue(),
            start: startCarPKU,
            limit: limitCarPKU
        },
        reader: {
            type: 'json',
            root: 'data',  //根节点
            totalProperty: 'result' //数据总条数
        }
    },
    sorters: [{
        //排序字段。
        property: 'CarPKU',
        //排序类型,默认为 ASC 
        direction: 'ASC'
    }],
    //autoLoad: true  //即时加载数据
});

问题出在:extraParams 在4.2中没作用

 extraParams: {
            TrademarkId: Ext.getCmp('TrademarkId').getValue(),
            SubTrademarkId: Ext.getCmp('SubTrademarkId').getValue(),
            SeriesId: Ext.getCmp('SeriesId').getValue(),
            ModelNumberId: Ext.getCmp('ModelNumberId').getValue(),
            start: startCarPKU,
            limit: limitCarPKU
        },

解决方法:

1.将extraParams进行删除

2.新增代码:

store.on('beforeload', function (store, options) {
    var params = {
        TrademarkId: Ext.getCmp('TrademarkId').getValue(),
        SubTrademarkId: Ext.getCmp('SubTrademarkId').getValue(),
        SeriesId: Ext.getCmp('SeriesId').getValue(),
        ModelNumberId: Ext.getCmp('ModelNumberId').getValue(),
        start: startCarPKU,
        limit: limitCarPKU
    };
    Ext.apply(store.proxy.extraParams, params);
});
具体如下:
var store = Ext.create('Ext.data.Store', {
    model: 'PKU',//这个地方CarPKU不是一个对象,而是一个类
    remoteSort: false,
    remoteFilter: true,
    pageSize: limitCarPKU,  //页容量20条数据
    method: 'POST',
    proxy: {//代理
        type: 'ajax',
        url: '/Handler/PKUCarHandler.ashx?Func=PKUCarUnites',
        reader: {
            type: 'json',
            root: 'data',  //根节点
            totalProperty: 'result' //数据总条数
        }
    },
    sorters: [{
        //排序字段。
        property: 'CarPKU',
        //排序类型,默认为 ASC 
        direction: 'ASC'
    }],
    //autoLoad: true  //即时加载数据
});

store.on('beforeload', function (store, options) {
    var params = {
        TrademarkId: Ext.getCmp('TrademarkId').getValue(),
        SubTrademarkId: Ext.getCmp('SubTrademarkId').getValue(),
        SeriesId: Ext.getCmp('SeriesId').getValue(),
        ModelNumberId: Ext.getCmp('ModelNumberId').getValue(),
        start: startCarPKU,
        limit: limitCarPKU
    };
    Ext.apply(store.proxy.extraParams, params);
});
原文地址:https://www.cnblogs.com/foreverfendou/p/5239595.html