Extjs 要存储的参数

Extjs 要存储的参数,extjs,pagination,store,param,Extjs,Pagination,Store,Param,我有一个学校的学生json数据存储。学生们报名参加课程。 我需要,按课程向学生展示。所以我有了下一个分页商店: Ext.define('AM.store.Alumnos', { extend: 'Ext.data.Store', model: 'AM.model.Alumno', autoLoad: false, start: 0, pageSize: 20, remoteSort: true, proxy: { type:

我有一个学校的学生json数据存储。学生们报名参加课程。 我需要,按课程向学生展示。所以我有了下一个分页商店:

Ext.define('AM.store.Alumnos', {
    extend: 'Ext.data.Store',
    model: 'AM.model.Alumno',
    autoLoad: false,
    start: 0,
    pageSize: 20,
    remoteSort: true,
    proxy: {
        type: 'ajax',
        url: 'mvc/stores/Alumnos.php',
        reader: {
            type: 'json',
            root: 'data',
            successProperty: 'success',
            totalProperty: 'total'
        }
    }
});
我喜欢,不是每道菜都有商店。然后,当我加载存储时,通过param发送idCourse:

/**
 * Muestra la ventana de gestion de un grado.
 * @param {int} id course.
 * @return {void}
 */
mostrarAbmAlumnos: function(idGradoSolicitado) {
    var store = Ext.create('AM.store.Alumnos', {}).load({
        params: {idGrado: idGradoSolicitado}
    });
}
对于第一个页面,商店工作正常,但当我单击“下一页”时,idCourse不会转到服务器


有什么想法吗?

我找到了解决办法。当我创建数据存储时,在加载它之前,在代理上绑定extraParams。 根据文件:

extraParams:对象将包含在每个 要求具有相同名称参数的单个请求将 当这些参数发生冲突时重写它们

注意:我使用ExtJS4,在以前的版本中,extraParams称为baseParams

因此,正确的代码应该是:

var store = Ext.create('AM.store.Alumnos', {});
store.getProxy().extraParams.idGrado = idGradoSolicitado;
store.load();
干得好