修复ext4分页查询条件丢失问题
在使用Ext4进行表格数据查询时,尤其是在处理分页操作时,如果遇到在首次加载后进行下一页查询时返回了所有数据而不是预期的分页结果,这可能是由于没有正确传递之前查询的条件参数导致的。在这个例子中,开发者使用了`Ext.data.ArrayStore`来存储和管理数据,它与后台服务器进行异步通信(通过`proxy.type:'ajax'`),获取数据并设置了每页的大小(`pageSize:23`)。 问题的关键在于`beforeload`事件监听器,这个监听器会在数据加载前被触发。开发者在这里使用了`store.on('beforeload', function...)`的方式,在Ext4的版本中被替换为`storetable.on('beforeload', function(store, options)...)`,以便在每次请求之前更新查询参数。当用户改变选择的部门代码(`division_code`)和员工类型(`employee_type_name`)时,开发者会动态地创建一个新的参数对象`new_params`,然后将其合并到`store.proxy.extraParams`中,以确保这些筛选条件在后续的请求中被包含。 原始代码中还提到了一个`ext3`版本的方法,但在实际的`ext4`代码中并没有使用。在`ext3`版本中,开发者试图通过直接修改`store.baseParams`来设置固定参数,但在`ext4`中,这种方式不适用,因为它可能无法正确传递分页和排序信息,特别是在使用`remoteSort`和动态参数的情况下。 解决这个问题的关键在于,为了实现分页查询的正确性和一致性,需要确保每次加载新页面时,都携带上之前筛选和排序的条件。开发者应当在`beforeload`事件中,根据用户的实时选择更新查询参数,并确保这些参数传递给了Ajax请求的URL,例如: ```javascript // 在Ext4中正确的做法 storetable.on('beforeload', function(store, options) { var params = { division_code: Ext.getCmp("multiCombo").getValue(), employee_type_name: Ext.getCmp("multiComboType").getValue(), // 如果有其他分页或排序参数,请一并添加 start: store.getAt(options.indexStart).get('id'), // 获取当前页开始的记录ID,用于分页 limit: store.pageSize // 保持每页大小不变 }; Ext.applyIf(options.params, params); // 将参数合并到options中,确保传递给后台 }); ``` 通过这种方式,每次请求都会带上上一次查询的参数,从而确保查询结果集的正确分页。这样可以避免在切换页面时出现意外的全量数据返回,提高了用户体验和数据的准确性。
var storetable = Ext.create('Ext.data.ArrayStore', {
model: 'Task',
remoteSort: true,
pageSize:23,
proxy: {
type: 'ajax',
url: 'staffInformation!getTreegrid.action?division_code='+division_code,
reader: {
type: 'json',
root:'items',
totalProperty:'total'
}
},
autoLoad:true
});
storetable.on('beforeload', function (store, options) {
var new_params = {
division_code : Ext.getCmp("multiCombo").getValue(),
employee_type_name : Ext.getCmp("multiComboType").getValue()
};
Ext.apply(store.proxy.extraParams, new_params);
});
//ext3 翻页时候表单条件值丢失问题解决方案
//store.on('beforeload', function () {
// store.baseParams = {
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 97
- 资源: 142
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦