Как применить точное соответствие в функции Grid Filter, используя Extjs4? - PullRequest
3 голосов
/ 21 июня 2011

Я использую Extjs4 и хочу применить точный соответствий при фильтрации сетки.Я использую недавно введенную функцию фильтрации сеток. Я пытался использовать точный соответствий, но он не работает.Вот мой пример кода:

Ext.define('MyModel', {
        extend: 'Ext.data.Model',
        fields: [
            {name: 'ID', type: 'string'},
            {name: 'Title', type: 'string'}
        ]
    });

var store = Ext.create('Ext.data.Store', {         
        model: 'MyModel',
        proxy: {
            type: 'ajax',                       
            url: 'myurl',                       
            reader: {
                type: 'json'                  
            }
        },
        sorters: [{
            property: 'ID',
            direction:'DESC'
        }],
        autoLoad:true            
    });

var filters = {
        ftype: 'filters',               
        encode: true, 
        local: true,   
        filters: [{
            type: 'numeric',
            dataIndex: 'ID',
            disabled: true
        },{
            type: 'string',
            dataIndex: 'Title',
            exactMatch:true
        }]
    };

var grid = Ext.create('Ext.grid.Panel', {
        store: store,
        columns: [{
            header: 'ID',
            dataIndex: 'ID',
            width: 20
        },{
            header: 'List Title',
            dataIndex: 'Title',
            flex:1
        }],
        renderTo: 'editor-grid',
        width: 700,
        height: 400,
        frame: true,                      
        features: [filters]
    });

Спасибо ..

Ответы [ 2 ]

1 голос
/ 04 октября 2011

Похоже, что для ExtJS V4.0 вам не нужно настраивать отдельные параметры фильтра для сетки, поскольку они уже включены. Вы можете просто вызвать метод в хранилище для фильтрации после загрузки данных следующим образом:

store.filter("Title", "Bob");

или если вы хотите сделать несколько фильтров, например, так:

store.filter([
    {property: "email", value: "Bob"},
    {filterFn: function(item) { return item.get("ID") > 10; }}
]);
0 голосов
/ 18 августа 2011

Свойство объектов сетки может содержать только те классы, которые были расширены из Класса объектов .

См. Функция группировки:

Ext.define('Ext.grid.feature.Grouping', {
    extend: 'Ext.grid.feature.Feature',
    alias: 'feature.grouping'
    // More properties and functions...
}

ГруппировкаИспользование функции :

var groupingFeature = Ext.create('Ext.grid.feature.Grouping', {
    groupHeaderTpl: 'Group: {name} ({rows.length})', //print the number of items in the group
    startCollapsed: true // start all groups collapsed
});

var grid = Ext.create('Ext.grid.Panel', {
          features:[groupingFeature]
}
...