Extjs网格依赖于外部存储,无法正确呈现

时间:2015-12-23 18:37:46

标签: extjs grid store extjs6

我有一个Extjs(版本6,经典API)面板,里面有一个网格。这个网格有自己的商店,可以在initComponent()中使用。它正好迭代这些记录。问题是一列有一个依赖于另一个商店的自定义渲染器。根据几个不同的因素,可以加载或不加载该商店。因此,网格无法正确呈现该列。我发现自己在如何处理这个方面有点蠢。基本概念是该列的值只是一个对用户没有任何意义的键。在非网格存储中查找此密钥,以使用网格列中的渲染器属性正确显示数据。所有的代码都运行良好,但它是加载该存储的问题,当它加载时,它不会触发该列的重新呈现,因为它不是网格本身的存储

我可以在initComponent()完成之前同步加载存储,但这并不理想。我不能告诉它在呈现阶段等待商店加载,因为如果商店没有加载,这将使列留空。我需要以某种方式触发该列的重新呈现,或者如果非网格存储未加载则让它正确等待。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

AFAIK没有办法告诉网格重新渲染某个列。所以你必须刷新整个网格:

myGrid.on('afterrender',function(grid) {
    externalStore.on('load',function() {
        grid.getView().refresh();
    });
});