Extjs 分页多选的实现
Extjs 版本 6.X
单页面的多选,没有任何问题。
直接使用 Grid的配置项进行绑定即可获取:
xtype: 'grid',
bind: {
selection: '{checkedRecords}'
},
但是如果grid采用分页处理,当我们翻到第二页时 是一个新store,数据就完全变了,即使翻回第一页也没有之前的勾选了,
所以,我们实现分页多选,就要记录之前的选择。
我们的方案是使用另一个容器记录所有的勾选,效果如下:

为了好的用户体验,要注意的地方:
1. 每次添加新数据时,要判断数据是否已经存在。
使用事件selectionchange,来添加新的勾选数据
Ext.Array.each(selected, function (item) {
//如果勾选信息在右侧列表不存在,则添加
var isExist = Ext.Array.findBy(selectedRecords.items, function (r) {
return item.get('Id') === r.get('Id');
});
if (!isExist) {
selectedStore.add(item);
// 保持所有数据为勾选状态
selectedGrid.getSelectionModel().selectAll();
}
});
2. 从第2页翻回第1页时,要把第一页的勾选数据,勾选上。
在左侧store的load事件中,找到要勾选的数据,进行处理:
grid.getSelectionModel().select(result)
3. 删除勾选数据时,同时把表格的勾选数据也一并删除。
grid.getSelectionModel().deselect(store.indexOf(result), true);
Extjs 分页多选的实现的更多相关文章
- Easyui-DataGrid 分页多选框 及 遍历所有选中项
html <table id='grid' class='easyui-datagrid' style='height:500px' url='Ajax-index.php?module=< ...
- JQuery实现表格的全选和反选,以及分页勾选保存(laypage插件分页的使用)
需求: 1.全选与取消全选 2.单个勾选,点击表格单元格中checkbox勾选,也可以在点击行勾选,便与用户操作 3.分页勾选保存 4.固定表头 功能一: 说明:操作全选按钮的同时,遍历每一个tr中的 ...
- Extjs grid分页多选记忆功能
很多同事在用extjs grid做分页的时候,往往会想用grid的多选功能来实现导出Excel之类的功能(也就是所谓的多选记忆功能),但在选选择下一页的时候 上一页选中的已经清除 这是因为做分页的时候 ...
- jq pagination分页 全选、单选的思考
$().pagination(总条数,配置项); 后端分页的跨页选择: 思路:把浏览过的页整体保存为,整体拥有 curPage(当前页码).allChoice(当前页是否全选).selected当前页 ...
- vue分页全选和单选操作
<!DOCTYPE html> <html> <head> <title>演示Vue</title> <style> ul,li ...
- dwz 分页 bug (选回 combox 第一个值时不执行 onchange)
先看一下官方的测试: 官方的演示有两个 bug 一个是combox数字一直不变,二是当选回第一个值时不执行 onchange 事件. 经过firebug调试,这是一个bug,传到后台的参数没有得到及时 ...
- ASP.NET MVC中使用MvcPager异步分页+在分页中复选框下一页上一页也保持选中
ASP.NET MVC 分页使用的是作者杨涛的MvcPager分页控件 地址:http://www.webdiyer.com/mvcpager/demos/ajaxpaging/ 这个分页控件在里面 ...
- extjs分页
1.本地分页:设置store的proxy属性为pagingmemoryproxy实例 2.远程分页
- Extjs 分页传参方法
第一种(常用): var proxy = new Ext.data.HttpProxy({url : url}) var store = new Ext.data.Store({ pruneModif ...
随机推荐
- 并发编程 - 进程 - 1.开启子进程的两种方式/2.查看pid/3.Process对象的其他属性或方法/4.守护进程
1.开启子进程的两种方式: # 方式1: from multiprocessing import Process import time def task(name): print('%s is ru ...
- d3.js 之关联数据:data操作符
数据可视化 在可视化工作中,一个基本出发点是将不同的数值映射到不同的可视化 元素的属性上,使其表现出各自不同的视觉特征. 比如:以数组中的每一个值为直径分别创建一个圆,我们得到三个圆: 在d3中,可视 ...
- getApplicationContext()、Activity.this、 getBaseContext区别
getApplicationContext()返回应用的上下文,生命周期是整个应用,应用退出它才被摧毁 Activity.this 返回当前activity的上下文,属于activity ,activ ...
- go-007-条件语句
一.概述 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句. 1.if结构 if 布尔表达式 { /* ...
- Jenkins的安装及邮件配置
Jenkins介绍 Jenkins,是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,包括: 1).持续的软件版本发布/测试项目. 2).监控外部调用执行的工作. Jenkins安装 j ...
- hadoop-3.0.0-beta1分布式安装
楼主是从Hadoop2.x版本过来的,在工作之余自己搭建了一套3.0的版本来耍一耍,此文章的前置环境准备工作省略.主要介绍一些和Hadoop2.x版本不同的安装之处 Hadoop版本:hadoop-3 ...
- SDUT2857:艺术联合会(简单dp)
链接: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2857 题目解析: 这是去年校赛的题目, ...
- HDU3074: Multiply game(线段树单点更新,区间查询)
题目: 传送门 题解:线段树模板题目. 对递归的题目始终理解不好,我的痛啊,在水的题目都要写很长时间. #include <iostream> #include <string.h& ...
- @FindBy、@FindBys、@FindAll的区别
原文地址http://blog.csdn.net/tea_wu/article/details/21080789 selenium-webdriver中获取页面元素的方式有很多,使用注解获取页面元素是 ...
- Django:学习笔记(7)——模型进阶
Django:学习笔记(7)——模型进阶 模型的继承 我们在面向对象的编程中,一个很重要的的版块,就是类的继承.父类保存了所有子类共有的内容,子类通过继承它来减少冗余代码并进行灵活扩展. 在Djang ...