在grid的最后一页删除所有数据,删除成功后reload刷新grid,发现无法向前翻页
Ext.Ajax.request({
url : '/itspm/ChangeProcessJson.do?act=REVIEW_DELETE',
headers : {ContentType : 'UTF-8'},
params : {
reviewData: Ext.getDom("reviewData").value
},
success : function() {
reviewGridDs.reload();
},
failure : function() {
alert("delete failure");
}
});
Ext.Ajax.request({
url : '/itspm/ChangeProcessJson.do?act=REVIEW_DELETE',
headers : {ContentType : 'UTF-8'},
params : {
reviewData: Ext.getDom("reviewData").value
},
success : function() {
reviewGridDs.reload();
},
failure : function() {
alert("delete failure");
}
});
userForm.form.doAction('submit', {
url : 'data/system/user_manage_data.jsp',
method : 'post',
params : 'command=update',
waitMsg:'数据提交中.....',
success : function(form, action)
{
//关闭窗口
closeWin('userWin');
userGrid.ds.reload();
},
failure : function(form, action)
{
var errmsg = action.result.msg;
Ext.Msg.alert('修改操作失败',errmsg);
}
});
}关键是这句 userGrid.ds.reload();
和 //加载用户记录数据
this.ds.load({params:{start:0,limit:50}});
if(store.getTotalCount() % pbar.pageSize == 1)
pbar.changePage(Math.floor(store.getTotalCount() / pbar.pageSize));
}
//pbar Grid's PagingToolbar
//store Grid's store
reviewGridDs.reload();
setPage(this.paging, this.infoStore);
从服务器已经删除了数据,应该store.getTotalCount() % pbar.pageSize == 0
?
grid.getStore().reload({
callback:function(){
setPage(Ext.getCmp('pagingbar'), grid.getStore());
}
});function setPage(tbar, store) {
if (store.getTotalCount() % tbar.pageSize ==0) {
tbar.changePage(Math.floor(store.getTotalCount() / tbar.pageSize));
}
}需要强调的是:reload中的callback,如果直接reload()后调用setPage(……),会有麻烦,应为reload还没有完成就setPage,此时的store.getTotalCount() 还是原来的条数