我通过获取其ID来删除网格中的一行,并调用其他Web服务将其从数据库中删除。 通过调用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的输出(我用'...'替换了一些输出):
count before reload 1 ...
...
count after reload 1 ...
我在互联网上搜索但是徒劳无功。好吗?
答案 0 :(得分:1)
问题是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文档 http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.data.Store-method-load
答案 1 :(得分:0)
使用网格grid.getView().refresh()
方法或按grid.getStore().reload()
重新加载网格商店
答案 2 :(得分:0)
您是否从服务器获得正确的记录数?尝试调试java代码并查看查询结果。这可能是java代码返回记录的问题。