使用情况:使用Extjs的Grid时使用远程分页时有一个问题,就是当翻到下一页时上一页中选中的内容会被清除。
我的解决方案:建立一个Extjs的Collection用于存储,当然这里需要存储的是数据库中的主键值,当选中Grid中的多选框时,把主键加入Collection,取消选择时则把主键从Collection中删除,提交时就提交Collection中内容。
建立Collection。
点击Grid时发生cellclick事件,sm是CheckboxSelectionModel。
翻页时。
我的解决方案:建立一个Extjs的Collection用于存储,当然这里需要存储的是数据库中的主键值,当选中Grid中的多选框时,把主键加入Collection,取消选择时则把主键从Collection中删除,提交时就提交Collection中内容。
建立Collection。
var collection=new Ext.util.MixedCollection();
点击Grid时发生cellclick事件,sm是CheckboxSelectionModel。
var row=grid.getStore().getAt(rowIndex);
if(sm.isSelected(rowIndex)){
collection.add(row.get('主键'),{id:row.get('主键'),name:row.get('其他字段')});
}else
{
collection.removeKey(row.get('主键'));
}
翻页时。
var total = store.getCount();//数据行数
for(var i=0;i<total;i++){
var row=store.getAt(i);
if(collection.containsKey(row.get('主键'))){
grid.selModel.selectRow(i,true);
}
}