浏览 5419 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-10
我的解决方案:建立一个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); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-02-14
azure2a 写道 使用情况:使用Extjs的Grid时使用远程分页时有一个问题,就是当翻到下一页时上一页中选中的内容会被清除。
我的解决方案:建立一个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); } } |
|
返回顶楼 | |
发表时间:2011-02-15
大家都用的方法,基本是这么解决的。
|
|
返回顶楼 | |
发表时间:2011-02-15
我碰到了这个问题,谢谢分享,一会试试
|
|
返回顶楼 | |
发表时间:2011-02-15
有个问题是。如果数据本身在变化。比如你在翻到第二页页的时候,第一页有一条记录在别处删除了。这样导致最终提交的数据不正确。
|
|
返回顶楼 | |
发表时间:2011-02-17
正在进行此类问题的学习,提前学习了!
|
|
返回顶楼 | |