Javascript rest webservice删除记录后刷新extjs数据存储记录计数
我通过获取网格中的一行id并调用rest web服务将其从数据库中删除,从而删除该行。 通过调用store.load()更新数据网格; 问题是除非我刷新页面,否则记录计数永远不会改变Javascript rest webservice删除记录后刷新extjs数据存储记录计数,javascript,web-services,extjs,store,Javascript,Web Services,Extjs,Store,我通过获取网格中的一行id并调用rest web服务将其从数据库中删除,从而删除该行。 通过调用store.load()更新数据网格; 问题是除非我刷新页面,否则记录计数永远不会改变 success : function (response) { console.log("count before load" + pDetailsTab.tvsListGrid.store.getCount()); pDetailsTab.tvsListGrid.store.load();
success : function (response) {
console.log("count before load" + pDetailsTab.tvsListGrid.store.getCount());
pDetailsTab.tvsListGrid.store.load();
console.log("count after load " + pDetailsTab.tvsListGrid.store.getCount());
if (pDetailsTab.tvsListGrid.store.getCount() >= 1) {
console.log("inside if");
pDetailsTab.tvsListGrid.getSelectionModel().select(0);
} else if (pDetailsTab.respSGrid.store.getCount() >= 1) {
pDetailsTab.respSGrid.getSelectionModel().select(0);
}
ExtjsUtils.hideWait();
}
这是console.log的输出(我用“…”替换了一些输出):
我在网上搜索过,但没有找到。有什么想法吗?请使用grid的
grid.getView().refresh()
方法或通过grid.getStore().reload()
从服务器获取正确的记录计数吗?尝试调试java代码并查看查询结果。返回记录的java代码可能存在问题。问题在于load()是异步的。
此代码必须如下所示:
pDetailsTab.tvsListGrid.store.load({
scope: this,
callback : function(records, operation, success) {
console.log("count after load " + pDetailsTab.tvsListGrid.store.getCount());
if (pDetailsTab.tvsListGrid.store.getCount() >= 1) {
console.log("inside if");
pDetailsTab.tvsListGrid.getSelectionModel().select(0);
} else if (pDetailsTab.respSGrid.store.getCount() >= 1) {
pDetailsTab.respSGrid.getSelectionModel().select(0);
}
ExtjsUtils.hideWait();
});
请检查版本4.1.3的exjts文件
我使用了sync,但也没有用。4.1.3版中不存在重新加载。网格刷新不是我的问题,因为它是由load()自动完成的。我得到了正确的记录。问题是load()是异步的,这导致我必须添加回调函数来实现我想要的。
pDetailsTab.tvsListGrid.store.load({
scope: this,
callback : function(records, operation, success) {
console.log("count after load " + pDetailsTab.tvsListGrid.store.getCount());
if (pDetailsTab.tvsListGrid.store.getCount() >= 1) {
console.log("inside if");
pDetailsTab.tvsListGrid.getSelectionModel().select(0);
} else if (pDetailsTab.respSGrid.store.getCount() >= 1) {
pDetailsTab.respSGrid.getSelectionModel().select(0);
}
ExtjsUtils.hideWait();
});