使用ArrayStore在本地过滤网格

时间:2012-07-06 18:51:43

标签: extjs extjs4 extjs-mvc extjs4.1

我需要根据某些标准FILTER我的网格。

例如;如果有3个字段Name,age,school。我需要在本地过滤网格,以便在网格中显示所有age 10的学生。

我读到如果我使用Ext.data.ArrayStore,这是可以实现的。但我不知道如何将其应用到我的代码中。我的商店类看起来像这样;

Ext.define('Project.store.Person',{
    extend:'Ext.data.Store',
    model:'App.model.Person',   
    proxy: {
        type: 'ajax',
        url : '/person.php'
    }
});

我的模特;

Ext.define ('Project.model.Person',{
    extend: 'Ext.data.Model',   
    fields:['name','age','school']
});

如何应用Ext.data.ArrayStore,以便在本地过滤列。喜欢显示所有10age年的学生。

**UPDATE**

GRID - 查看

this.columns = [
    {
{ text: "Size", dataIndex: 'size' ,filter: {
            type: 'list',
            options: ['small', 'medium', 'extra large']

        } }, ...

STORE

Ext.define('SerenExample.store.GridFilterExample',{
    extend:'Ext.data.Store',
    model:'App.model.GridFilterExample',
    remoteFilter: false,
    remoteGroup:true,
    proxy: { ...

当我点击尊敬的列

时,我没有看到复选框说明过滤器

更新

Ext.define('SerenExample.view.GridFilterExample' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.gridfilt',
features: [],
    initComponent: function() {
        this.store = 'GridFilterExample';

        this.columns = [
    {
    ...

更新2

GET http://localhost/SerenExample/feature/filters.js?_dc=1341677311248 404 Not Found 104ms
"NetworkError: 404 Not Found - http://localhost/SerenExample/feature/filters.js?_dc=1341677311248"

Ext.define('SerenExample.view.GridFilterExample' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.gridfilt',
features: [  {ftype: 'filters',
            autoReload: false,
            local: true,                
            filters: [{
                type: 'list',
                dataIndex: 'status',
                            options: ['small', 'medium', 'extra large']
            }]}],
    initComponent: function() {
        this.store = 'GridFilterExample';

        this.columns = [
    {

1 个答案:

答案 0 :(得分:1)

您无需使用ArrayStore。只需在商店定义中指定remoteFilter: false并应用过滤器即可。它将在当地完成。