2012-02-28 43 views
2

假設在單個頁面上有兩個具有相同列但要顯示不同記錄的網格。EXTJS4:批准採用多個網格顯示來自同一商店的數據,但每個網格具有不同的記錄

可能有兩個解決它:渲染網格之前

  1. 使用相同型號及存儲和過濾器上存儲。 此解決方案中的潛在問題:由於底層商店是相同的,因此第二個網格將爲 在第一個網格上渲染過濾器將被擦除。

  2. 使用不同的存儲的定義和模型定義(保持代理,並同其他存儲/模式的定義,但只是改變了名稱字段): 問題:我想這個潘多拉應用程序,它開始給奇怪的問題,使得第二格沒有顯示任何記錄。

哪種方法更好,以及如何解決相應的問題。

-Thanks

+0

莎的做法是絕對不好的一個...它的工作原理,但它不是實現這一目標的最佳途徑!我也建議DmitryB的解決方案。 如果第二個網格沒有加載,也許你忘記了在第二個商店調用load()? – 2012-02-29 10:46:39

+0

看起來像做到這一點的唯一方法是創建另一個商店?嗯...... – Geo 2013-06-14 15:22:48

回答

0

我把和建議不引用商店的同一個實例,但每個網格中創建您的商店的新實例的方法:

店:Ext.create('的MyStore 」,{...});

1

我們在我們的項目中遇到了完全相同的問題。我結束了使用以下方法:

  • 從服務器定義了一種模式,一種儲存類
  • 負載存儲爲第一格
  • 克隆存儲對象的所有記錄(你可能想谷歌究竟如何在這一刻,你需要決定你是否只需要一個本地副本或複製綁在服務器上的同一個數據源做到這一點)
  • - 既可以實現根據需要
什麼

如果需要,我可以發佈一些示例代碼進行克隆。

UPDATE

下面是代碼示例克隆存儲對象:

cloneStore: function(store, storeClass) { 
    var new_st = Ext.create(storeClass), 
     recs = [], 
     filter; 

    store.each(function(r) { 
     recs.push(r.copy)} 
    ); 
    new_st.add(recs); 

    return new_st; 
}, 
+0

*「如果你需要它,我可以發佈一些示例代碼來克隆。」*:我知道這是舊的,但我想看到一些代碼? – 2015-07-08 14:53:26

+0

@jsve - 你去了 – sha 2015-07-08 17:28:43

相關問題