解决grid选中行分页后不保持的问题(实现分页多选记忆功能)
来源:互联网 发布:白头发怎么办 知乎 编辑:程序博客网 时间:2024/05/16 09:46
---------注:本博客中的代码并不能直接运行,只是用做举例,只用做说明工作中遇到的问题--------
问题描述:当在grid中选择某行记录时,再翻页,每一次翻页,其它页面的选中行就消失了
a.定义一个全局的collection变量,保存选中的所有行
b.定义checkbox的勾选事件,每当选中一行记录时,就将这条记录插入到collection里面。
c.定义checkboc的取消勾选事件,每当取消一行记录时,从collection里删除该选中。
d.数据加载的时候(分页),遍历该页的所有数据是否存在于collection里面,是的话,则保持勾选。
这样只是解决了分页后复选框勾选的选中状态,要想将数据拿到就不要从sm里面遍历选中,而是从collection里面遍历,取出collecton的value部分。
<!-- 解决分页保持选中功能 --> this.collection= new Ext.util.MixedCollection(); var grid=this.resultGrid; var collection=this.collection;//处理checkbox的勾选事件 this.resultGrid.getSelectionModel().on('rowselect', function(sm, rowIdx,r){ var record=grid.getStore().getAt(rowIdx);collection.add(record.get('id'),record.data);}); //处理checkbox的取消勾选事件 this.resultGrid.getSelectionModel().on('rowdeselect', function(sm, rowIdx,r){ var record=grid.getStore().getAt(rowIdx);collection.remove(collection.get(record.get('id')));});//数据加载的时候,选中集合里面已存在的记录this.resultStore.on('load',function(store,options){var total=store.getCount();var array=new Array();for(var i=0;i<total;i++){var rec=store.getAt(i);if(collection.containsKey(rec.get('id'))){array.push(i);}}sm.selectRows(array);}); selectedNewsTag : function(){ if(this.collection.getCount() == 0){ showMsg('', '<fmt:message key="track.keyword.noSelected"/>'); return; } <!-- 解决分页保持选中功能,从collect里面拿数据,不要从sm里面拿 --> var tags=''; for(var i=0;i < this.collection.getCount();i++){ if(i>0){ tags = tags + ','+this.collection.get(i).tag; }else{ tags = this.collection.get(i).tag; } } <%-- if(this.resultGrid.selModel.getSelections().length == 0){ showMsg('', '<fmt:message key="track.keyword.noSelected"/>'); return; } var dataLength = this.resultGrid.selModel.getSelections().length; var index=0; var tags=''; for(var i=0;i < dataLength;i++){ if(i>0){ tags = tags + ','+ this.resultGrid.selModel.getSelections()[i].data.tag; }else{ tags = this.resultGrid.selModel.getSelections()[i].data.tag; } } --%> Ext.getCmp(this.columnName + this.contentId).setValue(tags); this.close(); },
0 0
- 解决grid选中行分页后不保持的问题(实现分页多选记忆功能)
- ExtJS Grid 分页时保持选中的简单实现方法
- 让Ext分页grid支持分页记忆选中,可增减。
- extjs的grid实现分页查看功能
- ExtJS Grid组件实现分页功能
- 解决grid拖拽功能后,复选框多选后取消不掉的问题
- 解决分页翻页多选框选中的数据丢失问题
- thinkphp独立分组后分页功能不能用的解决办法
- 分页功能的实现
- 分页功能的实现
- 分页功能的实现
- 分页功能的实现
- extjs4的grid中CheckboxModel,跨分页选中,
- 关于Extjs grid 分页的问题
- ExtJs中grid分页加载的问题
- Repeater控件分页功能的实现 (不推荐)
- easyui datagrid 分页保持checkbox选中状态
- JavaScript实现GridView行交替与行选中颜色变化,缺点是加入分页和UpdatePanel后,点击下一页后,功能就消失了
- Kylin使用之创建Cube和高级设置
- 演示集合的迭代遍历
- CoordinatorLayout的详解以及自定义Behavior
- select 多表查询 组合查询语句
- 设置状态栏的方法
- 解决grid选中行分页后不保持的问题(实现分页多选记忆功能)
- 聊聊高并发系统之HTTP缓存
- 中文乱码问题
- Google Chrome 源码下载
- elispse在调试时没有显示变量的窗口
- tomcat9启动中提示 org.apache.catalina.webresources.Cache.getResource Unable to add the resource
- 打印出如下图案(菱形)
- Android Studio查找功能(搜索功能)及快捷键
- 自定义View ——Canvas之绘制基本形状