2011-04-10 35 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