2011-04-10 26 views
3

我有兩個要求,結合Ext JS的組合由不同的項目Ext JS的組合篩選

- 在組合的第一個項目應該有固定的文本,如「Unfilterd」

- 之後我需要將數據存儲綁定到上面的組合。數據存儲已重新存儲了columnA值,因此如何在綁定組合之前過濾數據存儲以使其在列A中具有不同的行。

注:

我使用的數據存儲到網格panle藏漢結合,我不想再創建一個調用數據庫。這就是我尋找解決方案來通過Ext Js數據存儲過濾數據的原因。

我的示例代碼如下

extManager1.comboFilter = new Ext.form.ComboBox({ 
        editable: false 
       , id: 'BaseTemplate' 
       , fieldLabel: 'Base Templates' 
       , name: 'BaseTemplate' 
       , editable: false 
       , store: extManager1.GetTemplateDetails 
       , displayField:'FilterBy' 
       , valueField: 'value' 
       , mode: 'local' 
       , boxLabel: 'BaseTemplate' 
       , typeAhead: true 
       , triggerAction: 'all' 
       , forceSelection: true 
       , selectOnFocus: true 
       , emptyText:'Unfilterd' 
       ,listeners:{select:{fn:function(combo, value) { 

       //This code filters the grid panel data by selected combo value 
       Ext.getCmp('TemplateGridPanel').store.filter('productdisplayheading', combo.getValue());    

       }} 

       } 

    }); 

回答

2

你可能需要創建一個你所需要的內容,另一個存儲對象。但是不需要再從數據庫中獲取數據 - 您可以使用extManager1.GetTemplateDetails商店中的數據填充新商店。看看collect method of ExtJS Store - 它可以用來從現有商店獲取不同的值。

+0

感謝您的回覆。但我怎麼能從早期的 – Jemsworld 2011-04-11 13:48:39

+0

不同的價值我不知道如何使用collect方法可以請你舉個例子。我還需要爲組合添加第一項作爲'Unfilterd',我該如何實現這一點。 – Jemsworld 2011-04-11 15:41:10

+0

您可以使用'store.insert(0,[yourUnfilteredRecord])'將未過濾的項目添加到商店。 'store.collect('columnA')'從商店的columnA中返回不同的值。 – Tommi 2011-04-11 16:45:14