Javascript Ext Js组合按不同项筛选

Javascript Ext Js组合按不同项筛选,javascript,extjs,combobox,filter,datastore,Javascript,Extjs,Combobox,Filter,Datastore,绑定ExtJS组合需要两个条件 --组合框中的第一项应具有固定文本,如“未筛选” --之后,我需要将数据存储绑定到上面的组合。数据存储已重新生成columnA值,因此如何在绑定组合之前过滤数据存储,使其在columnA中具有不同的行 注: 我也在使用数据存储绑定网格窗格,我不想创建对数据库的另一个调用。这就是为什么我在寻找一种通过ExtJS数据存储过滤数据的解决方案 我的示例代码如下所示 extManager1.comboFilter = new Ext.form.ComboBox({

绑定ExtJS组合需要两个条件

--组合框中的第一项应具有固定文本,如“未筛选”

--之后,我需要将数据存储绑定到上面的组合。数据存储已重新生成columnA值,因此如何在绑定组合之前过滤数据存储,使其在columnA中具有不同的行

注:

我也在使用数据存储绑定网格窗格,我不想创建对数据库的另一个调用。这就是为什么我在寻找一种通过ExtJS数据存储过滤数据的解决方案

我的示例代码如下所示

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());               

                }}

                }

    });

您可能需要创建另一个包含所需内容的store对象。但是不需要再次从数据库中获取数据-您可以使用
extManager1.GetTemplateDetails
存储中的数据填充新存储。查看-它可用于从现有存储中获取不同的值。

感谢您的回复。我不知道如何使用collect方法,你能举个例子吗。我还需要为组合添加第一个项目作为“未筛选”,如何实现此目的。您可以使用
store.insert(0,[yourUnfilteredRecord])
将“未筛选”项目添加到存储中。和
store.collect('columnA')
从存储的columnA返回不同的值。