采用了数据库分页技术的grid. 当点了选择全部之后, 怎么才能不让表格不能翻到下一页?

我有一个grid.
采用的是[color=blue]数据库分页[/color], 将limit和start设置在sql中.

查询数据的时候分了两步.
第一[color=blue]先查所有记录的总数[/color], 把这个值得给grid的总记录数.
第二才查start和limit之间的数据集合

表格上有选择当前页按钮和选择全部按钮.

当我点"选择全部按钮"的时候, 需要得到所有的数据. [color=blue]并清空这个grid的所有数据[/color].

得到所有数据很容易解决.store.load({params:{start:0, limit:store.getTotalCount()}})就行了.

但是...清空这个grid的数据有些麻烦

store.removeAll()只能清空当前页的数据, 因为我只把当前页查了出来~~~

所以grid上还是会有下一页可点击.

偶想问下. 怎么让这个grid不能点下一页呢~

PS. [color=red]当我清空grid中的数据的时候, 只能是清掉客户端的数据, 不能动数据库的数据..[/color]

5个回答

方法1:
var store = Ext.getCmp('grid id').store;
[color=red]store.removeAll();
// root和totalProperty的定义与定义store中的root和totalProperty对应,list和totalSize就要对应root和totalProperty的值
store.loadData({root:'list',totalProperty:'totalSize',list:{},totalSize:0});[/color]

方法2:
添加多一个参数,再发一次请求到服务器,服务器根据传来的参数返回有数据的json或者返回没数据的json。

可以在 清空的button的响应事件中

在清空当页数据后

把页数、上一页、下一页这些按钮重置一下,恢复到查询前的状态就可以了

至于是visiblity还是disable 要看lz的具体环境啦~

grid.getBottomToolbar();
你看看这个对象里面应该可以设置为disabled或者其他属性使图标不可用

或者remove的时候store重新load,让它不返回数据

是用的PagingToolbar做的分页吧?
[code="javascript"]
var bar=new Ext.PagingToolbar({....});
var btn=.. //你定义的按钮
btn.on('click',function(){
bar.next.setDisabled(true);//下一页按钮不可用
bar.last.setDisabled(true);//最后一页按钮不可用
});
[/code]

还有一种更合理的实现方法:
在调用store的load方法前重新设置PagingToolbar的pageSize,
不过要记得读取部分数据时将pageSize改回去,这样做的好处就是左下方的信息提示是准确的
[code="js"]
bar.pageSize=store.getTotalCount();
[/code]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!