2012-07-30 47 views
2

我有2個網格,這兩個網格將從同一商店Person自行填充。使用相同的商店填充2個網格

我遇到的問題是,在第一個網格中,我將加載所有的運動及其擁有的球員數量。在第二格中,我將只顯示運動員獲得的獎牌和金牌的數量,其中SportID = 3。我怎樣才能做到這一點 ?當我加載網格,它得到了所有

{ 
        xtype: 'gridpanel', 
        title: 'ALl Sports', 
        store: 'Person', 
        columns: [ 
        { 
          xtype: 'gridcolumn', 
          dataIndex: 'SportID', 
          text: 'Sport ID' 
         }, 
         { 
          xtype: 'gridcolumn', 
          dataIndex: 'SportName', 
          text: 'Sport Name' 
         },       
         { 
          xtype: 'gridcolumn', 
          dataIndex: 'NoOfPlayers', 
          text: 'No Of Players' 
         } 
        ] 
       }, 
       { 
        xtype: 'gridpanel', 
        title: 'Sport Medals for Sport ID 3', 
        store: 'Person', 
        columns: [ 
         { 
          xtype: 'gridcolumn', 
          dataIndex: 'noOfMedals', 
          text: 'No Of Medals' 
         }, 
         { 
          xtype: 'gridcolumn', 
          dataIndex: 'NoOfGold', 
          text: 'No Of Gold' 
         } 
        ], 

填充我有2個網格和這兩個網格將填充它從同店Person自我。這2個網格在一個窗口中。當窗口加載時,我填充網格如下;

UPDATE 1 ############################# 3

var personStore = Ext.getStore('Person'); 
var r = personStore.getAt(0); 
personStore.on('load', function() { 
    r = personStore.getAt(0); 
st.filter({ 
    filterFn: function(rec) { 
     return rec.get('PersonId') == r.get('PersonId'); 
    } 


}); 
personStore.load(); 
###### ################# 3

但是,兩個網格都填充了相同的一組數據。我想要的是顯示網格1上的所有運動信息(sportID,sportName,noOfPlayers)和顯示運動信息(noOfMedals,noOfGoldsWHERE sportId='3'。我怎樣才能做到這一點 ?

回答

4

簡答題 - 你不能。如果您需要在同一商店同時展示兩個不同的網格,則需要克隆商店並獲得另一個副本。

如果不是在同一時間 - 您可以在顯示網格之前使用篩選和過濾一個商店。

+0

如何,我可以在一個網格上顯示所有內容並在第二個網格上顯示過濾的內容? – Illep 2012-07-30 12:54:32

+0

看看商店的方法'filter()' - http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.Store-method-filter – sha 2012-07-30 12:58:42

+0

我知道如何使用'Filter()',但不清楚如何用所有記錄填充1個網格,然後用篩選記錄填充第2個網格。 – Illep 2012-07-30 14:20:58