timeArray = new Array();    //临时数组变量
var timeStatusBar = new Ext.ux.StatusBar({
id: 'statusbar',
defaultText: '选择时间列表',
});
var timeSelectModel = new Ext.grid.CheckboxSelectionModel({
checkOnly:true,
singleSelect:false,
listeners:{
rowselect:function(sm, rowIndex, record){ //选择事件,将time添加到timeArray中
var time = record.data.time;
if (!ArrayContains(timeArray, time)){
//timeArray中没有存储time,则添加到timeArray中
var link = '<a href="javascript:removeTime_result('+time+')"><img src="/NetMonitor/Images/common/delete.gif"/></a>';
ArrayAppendDesc(timeArray, time, [time, link]);
timeStore_result.loadData(timeArray);
} },
rowdeselect:function(sm, rowIndex, record){ //取消选择事件,从timeArray中移除出去
//临时变量中存储了这个time,则从timeArray中移除出去
var time = record.data.time;
ArrayRemove(timeArray, time);
timeStore_result.loadData(timeArray);
}
}
});
var timeColumnModel = new Ext.grid.ColumnModel([
{ header:'时间选择列表',dataIndex:'time',width:200,align:'center'},
timeSelectModel
]);
var timeRecordType = Ext.data.Record.create([{name:'time'}]);
var timeStore = new Ext.data.Store({
id:'timeStore',
proxy:new Ext.data.DWRProxy(ExcelDaoService.getGridTime_ExcelDao,false),
reader:new Ext.data.ListRangeReader({
root:'data',
totalProperty:'totalSize'
},timeRecordType)
,
listeners:{
beforeload:function(){
timeStore.baseParams = {table:table};
},
load:function(){ //加载的时候,根据临时变量timeArray勾选
var records = new Array();
timeStore.each(function(record){
for(var i=0; i<timeArray.length; i++){
if(timeArray[i][0] == record.data.time){
records.push(record);
}
}
});
timeSelectModel.selectRecords(records, true);
}
},
remoteSort:true
}); var pageTBar=new Ext.PagingToolbar({
id:'pagingTbr',
pageSize: 20,
store:timeStore,
afterPageText:'共{0}页',
beforePageText:"当前页",
lastText:"尾页",
nextText:"下一页",
prevText:"上一页",
firstText:"首页"
});
var timeGrid = new Ext.grid.GridPanel({
id:'timeGrid',
tbar:timeStatusBar,
bbar:pageTBar,
cm:timeColumnModel,
sm:timeSelectModel,
store:timeStore,
autoScroll:true,
stripeRows:true,
height:540
});

Ext grid checkbox在翻页的过程中,会碰到之前勾选的数据,无法记录的情况,这时就应该使用一个临时array变量存储勾选的值,然后在grid每次load的时候,把每行数据与该array变量进行遍历判断,这样就能实现翻页保持勾选数据的效果。

Ext grid checkbox 分页 翻页 勾选 问题的更多相关文章

  1. 织梦DEDECMS网站首页如何实现分页翻页

    织梦DEDECMS模板网站首页如何实现首页分页和翻页 方法如下:(三种方法,自己选择一种来实现分页吧) 第一种:调用ajax和参数的(不推荐)1.必须在DEDE首页模板中的<head>&l ...

  2. jqgrid 翻页记录选中行

    简单的jqgrid列表 $("#list").jqGrid({ url:contextPath + "/getList", postData: data, da ...

  3. 【extjs】 ext5 Ext.grid.Panel 分页,搜索

    带有分页,搜索的grid. <%@page language="java" contentType="text/html; charset=UTF-8" ...

  4. Ext.grid.EditorGridPanel分页和查看全部

    在gridPanel添加查看全部数据按钮,必须使得每页显示的数量pageSize为总条数,那么总页数就只会有一页. 1.获取store数据的总条数 var totalCount = grid.getS ...

  5. [Extjs] Ext4 Ext.grid.Panel 分页实现(mybatis 分页插件-PageHelper 使用)

    先看图: 页面js代码: var userStore=Ext.create('Ext.data.Store', { storeId:'userStore', fields:['uname', 'ema ...

  6. Element UI表格组件技巧:如何简洁实现跨页勾选、跨页统计功能

    业务场景 在使用Element UI的Table组件时,常常面对这样的业务需求: 表格数据的每一项都要提供勾选框,当切换分页时,能够记忆所有页面勾选的数据,以实现批量提交不同页面勾选数据的功能.并且, ...

  7. layui table 分页 记住之前勾选的数据

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Dynamics CRM2013 sub grid中数据翻页问题

    CRM2013中一个很低级很令人无语的BUG,见下图subgrid中的明细条目超过当前页设置的条目后会有翻页,在底下有个paging bar会显示条数.页数.当前所处页数 但sp1版本的CRM打上ur ...

  9. easyui grid中翻页多选方法

    <table class="easyui-datagrid" title="人员选择" id="dg" data-options=&q ...

随机推荐

  1. ubuntu 卸载/安装 redis

    ubuntu 卸载redis 1. 卸载软件 apt-get remove redis 2. 清除配置 apt-get remove --purge redis 3. 删除残留文件 find / -n ...

  2. iOS - OC NSKeyedArchiver 数据归档

    前言 @interface NSKeyedArchiver : NSCoder @interface NSKeyedUnarchiver : NSCoder 在 OC 语言中,归档是一个过程,即用某种 ...

  3. jquery使用技巧

    1. 禁用右键点击(Disable right-click) <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  4. iOS 推送消息长度

    iOS最大推送消息长度 官方要求是256个字节 实际测试为1005个字节 在iPhone6上测试 锁屏时收到消息时只显示76个汉字,剩下的被隐藏 程序进入后台时只显示47个汉字,剩下的被隐藏

  5. 半平面交模板(O(n*n)&& O(n*log(n))

    摘自http://blog.csdn.net/accry/article/details/6070621 首先解决问题:什么是半平面? 顾名思义,半平面就是指平面的一半,我们知道,一条直线可以将平面分 ...

  6. MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)

    本节开始为大家讲解偏向应用的知识--创建对话框.  对话框,大家应该很熟悉了,在我们常用的软件中大多都有对话框界面,例如,360安全卫士的主界面其实就是对话框,知识它做了很多美工方面的工作,将其大大美 ...

  7. Phoenix - Hbase与SQL

    Phoenix - Hbase与SQL 2016-10-23 杜亦舒 Phoenix是什么 简单来说,Phoenix 是一个可以让我们通过SQL的方式操作HBase数据库的框架. HBase是一个No ...

  8. gevent中如何实现长轮询

    浏览网页时,浏览器会传HTTP 请求到服务器,服务器会根据请求将网页的内容传给浏览器,但是在很多的情况下,使用者会需要看到最新的即时性资讯,例如观看股票市场行情,而在以前只能靠着重新载入网页才能获得最 ...

  9. LinuxShell脚本攻略--第一章 小试牛刀

    使用 shell 进行数学运算: #!/bin/bash no1=; no2=; let result=no1+no2 echo $result result=$[ $no1 + no2 ] resu ...

  10. VI打开和编辑多个文件的命令 分屏操作

    VI打开和编辑多个文件的命令 可分两种情况: 1.在同一窗口中打开多个文件: vi file1 file2 file3:n  切换到下一个文件 (n=next):N  切换到上一个文件 2.在不同窗口 ...