2015-12-23 69 views
0

我有一個Extjs(版本6,經典的API)面板與網格。這個網格有自己的商店,準備在initComponent()內部進行。它正在迭代這些記錄就好了。問題是一列有一個依賴另一個商店的自定義渲染器。該商店可能會或可能不會被加載,具體取決於幾個不同的因素。因此,網格不會正確呈現該列。我發現自己在如何處理這個問題上有點尷尬。基本概念是該列的值只是一個對用戶而言毫無意義的關鍵。在非網格商店中查找此鍵,以使用網格列中的renderer屬性正確顯示數據。所有代碼都可以正常執行,但這是存儲加載的問題,並且當它加載時,它不會觸發該列的重新渲染,因爲它不是網格本身的存儲。Extjs網格依靠外部存儲,而不是正確渲染

我可以在initComponent()完成之前同步加載商店,但這並不理想。我不能說它等待商店在呈現階段加載,因爲如果商店沒有加載,這會使列留空。我需要以某種方式觸發該列的重新渲染,或者在非網格存儲沒有加載的情況下讓其正確等待。有任何想法嗎?

回答

3

AFAIK沒有辦法告訴網格重新渲染某一列。所以你將不得不刷新整個網格:

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

是的,這幾乎是我所要做的。這是一個簡單的網格,因此重新渲染並不耗時,並且對用戶來說幾乎是瞬間的。 – user1017413