Ext的CheckboxSelectionModel默认选中

说明:勾选某几条记录后,翻页再翻回来,保持原来的选中状态。

原理:在勾选或取消勾选的时候用recordIds保存或删除勾选中的Record的主键id值,
   每次store加载(load事件)完后,遍历store,比较每条Record的主键列id是否在recordIds中,
   若存在则将Record保存到临时变量records中,最后调用selMod.selectRecords(records, true);
  
写Array的remove与contains方法,搞得有点像java.util.HashSet(不让Array存重复值)

function RemoveArray(array,attachId){
    for(var i=0,n=0;i<array.length;i++){
        if(array[i]!=attachId){
            array[n++]=array[i]
        }
    }
    array.length -= 1;
}
function containsArray(array,attachId){
    for(var i=0;i<array.length;i++){
        if(array[i]==attachId){
            return true;
            break;
        }
    }
   return false;
} 
Array.prototype.remove = function (obj) {
    return RemoveArray(this,obj);
}; 
Array.prototype.contains = function (obj) {
    return containsArray(this,obj);
}; 

 

var recordIds=new Array();// 选中的Record主键列id列表
var recordsChecked=new Array();// 选中的Record列表

var store = new Ext.data.JsonStore({
				url : 'viewXXX.do',
				pruneModifiedRecords : true,
				totalProperty : 'totalProperty',
				root : 'root',
				fields : [{name : 'id'}, 
						  {name : 'status'}
						  ],
				listeners : {
					load : function() {
						var records = new Array();
						store.each(function(record) {
							if (recordIds.contains(record.data.id))
								 records.push(record);
						});
						selMod.selectRecords(records, true);// 以后每次load数据时,都会默认选中
					}
				}
			});
	
	var selMod = new Ext.grid.CheckboxSelectionModel({
		handleMouseDown : Ext.emptyFn,
				listeners : {
					"rowdeselect" : {
						fn : function(e, rowIndex, record) {
							if (recordIds.contains(record.data.id)) {
								recordIds.remove(record.data.id);
								recordsChecked.remove(record);
							}
						}
					},
					"rowselect" : {
						fn : function(e, rowIndex, record) {
							if (!recordIds.contains(record.data.id))
								recordIds.push(record.data.id);
							recordsChecked.push(record);
						}
					}
				}
			});

 

糖果【贪心】 【问题描述】 有N(1≤N <100,000)N(1≤N~<100,000)N(1≤N <100,000)种不同类型的糖果,每种糖果数量无限多。第i种糖果每颗的价格是Pi(1≤Pi≤1018),有Ci(1≤Ci≤1018)P_i(1≤P_i≤10^{18}),有C_i (1≤C_i≤10^{18)}Pi​(1≤Pi​≤1018),有Ci​(1≤Ci​≤1018)头牛想吃这种糖果。 FarmerJohnFarmer JohnFarmerJohn拥有金钱BBB元(1≤B≤1 阅读详情

相关推荐

Python爬虫实战:手把手教你园林植物分类全维度字典自动化采集实战!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 366

extjs学习之Ext.selection.CheckboxModel

Ext.onReady( function() { var store=Ext.create('Ext.data.Store', { storeId:'simpsonsStore', fields:['id','name','description','action'], data:[{ "id":'1', "name" : "节目一", "description" : "lisa@

晨港飞燕的专栏 1万+

com.xmlcalabash-1.0.9.jar

jar包,官方版本,自测可用

CheckboxSelectionModel

1.CheckboxSelectionModel简写sm 2.实现sm是否显示后台传入的json对象包含selected属性{root:[ {id:'1',code:'1001',name:'老李',sex:'1',age:'23',selected:false}, {id:'2',code:'1002',name:'懒蛋',sex:'1',age:'25',selected:true}]}要...

zyp_java的博客 1018

【解决方案】Ext.grid.CheckboxSelectionModel 实现锁住指定行不被选中

效果图1: 注:如图,要对 sm 为CheckboxSelectionModel 类型的 grid 实现指定行锁住而不被选中,锁住的条件由该行的某一字段的数据决定,图中根据“状态”决定改行能否被选中。 实现方法(js中对这个 grid 的 sm 属性做配置): sm:new Ext.grid.CheckboxSelectionModel({ ...

weixin_30606669的博客 635

有关GridPanel中的CheckboxSelectionModel(Extjs)

看到前人写的代码有不爽之处,不过改起来还真不知道从何下手,研究了一阵子,总算是搞定了。。。 我解决的问题是:在gridpanel左侧有一列checkbox,gridpanel右侧有一个图片区,每一行对应一个不同的图片。前人想偷懒,在有多行选择的时候,右侧只显示最上面一行的图片。。显然不太给力啊。。。。而且还有效率问题,当点击gridpanel标题行的全选checkbox时,右侧的信息会不停地变啊...

编程语言小筑 307

[转]extjs grid的Ext.grid.CheckboxSelectionModel默认选中解决方法

[转]extjs grid的Ext.grid.CheckboxSelectionModel默认选中解决方法

w36680130的博客 219

extjs grid的Ext.grid.CheckboxSelectionModel默认选中解决方法

  grid的复选框定义如下: var sm = new Ext.grid.CheckboxSelectionModel({ handleMouseDown : Ext.emptyFn, singleSelect : false });    为grid的store添加load监听如下:   store.addListener('load',f...

yougucao379548695的专栏 740

关于CheckboxSelectionModel回显和初始化默认选中

直接贴代码 如下: 直接贴代码 如下: Ext.onReady(function() { //添加复选框 var sm = new Ext.grid.CheckboxSelectionModel({ //为true单选,false多选 singleSelect : false }); var cm = new Ext.grid.Colu...

qq_52692884的博客 767

Ext.grid.CheckboxSelectionModel

1.CheckboxSelectionModel简写sm 2.实现sm是否显示 后台传入的json对象包含selected属性 {root:[ {id:'1',code:'1001',name:'老李',sex:'1',age:'23',selected:false}, {id:'2',code:'1002',name:'懒蛋',sex:'1',age:'25',selected:t

itlwc 1万+

CheckboxSelectionModel 几种获取值的方式,以及record数据通过combo来转换

var _drivStore = new Ext.data.ArrayStore({     id: 0,     fields: ['id','text'],     data: [[1,'张三'],[2,'李四']]     });        var _frmcombo = new Ext.form.ComboBox( {      id :this.genId("frmco

边走边爱的专栏 3495

EXTJS - CheckboxSelectionModel selectAll事件处理

需要处理checkbox的selectAll事件. 在CheckboxSelectionModel里提供了selectAll的方法, 一旦, 你用了这个方法, 默认不会帮你全选所有的item, 你需要在这里面, 使用selectRange,给定最大被选数目, 将全部数据选中. var fieldSelectModel = new Ext.grid.CheckboxSelectionModel...

aqudgv83的博客 862

Extjs 4 checkboxselectionmodel 清除选择及表头

当我使用到CheckboxSelectionModel时, 需要选中选项后, 提交操作, 回刷页面时, 然后之前被选中的项目可以被清除.需要用到以下代码:var categorySelectionModel = this.assetGrid.getSelectionModel(); //取消选项 categorySelectionModel.clearSelections(); //取消表头, 这...

aqudgv83的博客 1100

ExtJs中的CheckboxSelectionModel功能的完善

所谓说要完善CheckboxSelectionModel功能,其它是实现每行的CheckBox可以触发全选或者去全选。   说白了,就是当我们选中表中一行时,如果所有行都已经选中,那么头部的全选框会自动化选上,而如果表格全选中,把   其中一行去掉选择,而头部的全选框会自动去全选。   代码如下:   Ext.override(Ext.grid.CheckboxSelectionM...

hzylyl2402的专栏 575
上一篇: 禁用backspace退格键的页面后退,但是可以删除文本内容
下一篇: Ext结合Struts的Session超时处理
fireinjava
博客等级 码龄20年 5粉丝 53原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值