说明:勾选某几条记录后,翻页再翻回来,保持原来的选中状态。
原理:在勾选或取消勾选的时候用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);
}
}
}
});
分享到:
相关推荐
记住,在使用CheckboxSelectionModel时,必须明确指定`sm: sm2`,否则默认为单选模式。 #### 下拉框事件处理 在EXT中,下拉框(ComboBox)的事件处理可以通过`on`方法绑定事件监听器。例如,当`bankFullName`...
#### 表格复选框默认选中的实现 利用`selModel`的`checked`属性,可以在初始化时指定哪些行默认被选中。 #### 表格顶端工具条 通过`dockedItems`配置,添加`Ext.toolbar.Toolbar`到表格顶部,可包含按钮、下拉框等...
扩展到更复杂的需求,例如在表格中添加CheckBox选中功能,可以创建一个CheckboxSelectionModel并将其添加到ColumnModel中: ```javascript var sm = new Ext.grid.CheckboxSelectionModel(); var cm = new Ext.grid...
为了在表格中添加CheckBox选中功能,我们需要创建一个CheckboxSelectionModel实例,并将其添加到ColumnModel中: ```javascript var sm = new Ext.grid.CheckboxSelectionModel(); var cm = new Ext.grid....
- 如果需要在下拉列表中显示复选框,可以使用`checkboxSelectionModel`作为列表的`selModel`,并根据需要配置相关属性,如`showHeader`(是否显示列头,列头中包含复选框)。 5. **值的管理**: - `value`:多选...
- `sm`:选择模型(Selection Model),默认为CheckboxSelectionModel,允许多选。 2. **ColumnModel 配置** - `cmDataArrayBefore`:定义Grid最左侧的列配置,如行号列和选择列。 - `cmDataArray`:包含自定义...