我有一所学校的学生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不会访问服务器。
任何想法?。
答案 0 :(得分:0)
我找到了解决方案。当我创建数据存储时,在加载它之前,在代理服务器上绑定extraParams。 根据文件:
extraParams:Object将包含在每个参数中的额外参数 请求。具有相同名称的params的个别请求将 当他们发生冲突时,请覆盖这些参数。
注意:我使用ExtJs 4,在以前的版本中,extraParams称为baseParams。
所以,正确的代码会:
var store = Ext.create('AM.store.Alumnos', {});
store.getProxy().extraParams.idGrado = idGradoSolicitado;
store.load();
工作正常!