extjs翻页多选保留
--extjs翻页多选
//1、定义保存选中记录(翻页)的集合
var collection=new Ext.util.MixedCollection();
//2、定义选中记录的CheckboxSelectionModel
var sm = new Ext.grid.CheckboxSelectionModel({singleSelect : false, listeners : { 'rowselect' : function(sm, colIndex, row) {//选中勾选框 collection.add(row.get("dataIndex1"), row); }, 'rowdeselect' : function(sm, colIndex, row) {//取消勾选框 collection.remove(collection.get(row.get("dataIndex1"))); } } });
//3、定义store,从后台获取数据,同时进行监听-->加载,若后台中的数据在保存选中记录(翻页)的集合存在,设置勾选
store = new Ext.data.Store({ listeners: { ' load': function (records) { records = records.reader.jsonData.result; if (records.length == 0) return; var selModel = this.gridPanel1.getSelectionModel(); for (var i = 0; i < records.length; i++) { var record = records[i]; for (var j = 0; j < collection.getCount(); j++) { if (record.dataIndex1 == collection.items[j].data.dataIndex1) { selModel.selectRow(i);//若保存选中记录(翻页)的集合存在,设置勾选 } } } }.createDelegate(this) } });
//4、将定义好的store、sm填充到grid下
this.grid = new Ext.grid.GridPanel({ split :true, enableColumnMove : false, enableColumnHide : false, title : title, store : m_store, bbar : new Ext.PagingToolbar({ xtype : 'paging', pageSize : 20, store:m_store, displayInfo:true, displayMsg:'显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg:'没有记录' }), columns : [sm, {header : 'header1',dataIndex : 'dataIndex1', align:'center', sortable : true}, {header : 'header2',dataIndex : 'dataIndex2', align:'center', sortable : true} ], selModel : sm });

浙公网安备 33010602011771号