Показать сообщение отдельно
  #2 (permalink)  
Старый 21.01.2015, 15:37
Профессор
Отправить личное сообщение для novikov Посмотреть профиль Найти все сообщения от novikov
 
Регистрация: 19.11.2012
Сообщений: 178

для чекбокса вы определяете handler. В нём можно использовать два параметра checkbox и checked.

handler: function(checkbox, checked) { ... }


Дальше нужно найти компонент грида извлечь из него стор при помощи getStore() и отфильтровать записи.

Накидал примерчик в Fiddle.

Ext.application({
    name : 'Fiddle',

    launch : function() {
        
        Ext.create('Ext.container.Container', {
            renderTo: Ext.getBody(),
            width: 300,
            layout: {
                type: 'vbox',
                align: 'stretch'
            },
            itemId: 'myContainer',
            items: [
                {
                    xtype: 'grid',
                    itemId: 'myGrid',
                    flex: 1,
                    store: Ext.create('Ext.data.Store', {
                        fields: [
                            { name: 'education', type: 'string' }
                        ],
                        data: [
                            { education: 'Высшее' },
                            { education: 'Среднее' }
                        ]
                    }),
                    //plugins: 'gridfilters',
                    columns: [
                        {
                            header: 'Образование',
                            dataIndex: 'education',
                            flex: 1//,
                            //filter: {
                            //    type: 'list'
                            //}
                        }
                    ]
                },
                {
                    xtype: 'checkboxgroup',
                    flex: 1,
                    fieldLabel: 'Образование',
                    items: [
                        {
                            xtype: 'checkbox',
                            boxLabel: 'Среднее',
                            handler: function(checkbox, checked) {
                                
                                var grid = checkbox.up('#myContainer').down('#myGrid');
                                var store = grid.getStore();
                                if (checked) {
                                    store.filterBy(function(record) {
                                        return record.get('education') === checkbox.initialConfig.boxLabel;
                                    });
                                } else {
                                    store.clearFilter();
                                }
                            }
                        }
                    ]
                }
            ]
        });
    }
});



Либо используйте плагин gridfilters - пример.

Последний раз редактировалось novikov, 21.01.2015 в 15:46.
Ответить с цитированием