要存储的参数

时间:2013-09-19 14:28:44

标签: 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: '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不会访问服务器。

任何想法?。

1 个答案:

答案 0 :(得分:0)

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

  

extraParams:Object将包含在每个参数中的额外参数   请求。具有相同名称的params的个别请求将   当他们发生冲突时,请覆盖这些参数。

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

所以,正确的代码会:

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

工作正常!