以编程方式操作 ExtJS 4.2 中的 ListFilter



我在网格上使用了许多过滤器功能(ListFilter,DateFilter,StringFilter等) 我找不到如何操作这些过滤器。 我希望能够在列表中"选择"值,而无需让用户进入菜单并单击它。

根据以下评论,我无法访问过滤器本身...

grid.$className
"Ext.grid.Panel"
grid.filters.$className
"Ext.ux.grid.FiltersFeature"
grid.filters.getFilter("status")
undefined

我的网格和列配置

    var filtersCfg = {
        ftype: 'filters',
        local: false,
        filters: [{
            type: 'string',
            dataIndex: 'service_number'
        }]
    };
    var store = Ext.create('Ext.data.Store', {
        autoLoad: true,
        model: 'Service',
        pageSize: 10,
        proxy: {
            type: 'rest',
            format: 'json',
            url: '/services/list',
            extraParams: {order_id: Ext.get('services-panel').dom.dataset.orderId},
            idParam: 'dw_id',
            reader: {
                type: 'json',
                root: 'services',
                totalProperty: 'totalCount'
            }
        },
        remoteSort: true
    });
    grid = Ext.create('Ext.grid.Panel', {
        header: false,
        features: [filtersCfg],
        id: 'gridPanel',
        height: 335,
        frame: true,
        title: 'Services',
        store: store,
        bbar: Ext.create('Ext.PagingToolbar', {
            store: store,
            displayInfo: true,
            displayMsg: 'Displaying services {0} - {1} of {2}',
            emptyMsg: "No services to display"
        }),            
        columns: [{
            header: 'Service #',
            locked: true,
            width: 85,
            sortable: true,
            dataIndex: 'service_number',
            renderer: function(value, meta, record){
                return '<a href="/services/' + record.data.dw_id + '">' +  value + '</a>';
            }
        }, {
            header: '',
            locked: true,
            width: 35,
            sortable: true,
            dataIndex: 'is_monitored',
            renderer: function(value, meta, record){
                if(value){return '<span class="glyphicon glyphicon-stats"></span>';}
            }
        }, {
            header: 'Status',
            width: 100,
            sortable: true,
            dataIndex: 'status',
            filter: {
                type: 'list',
                id: 'status_list',
                options: [<%= Service.uniq.pluck(:status).collect(&:to_json).sort.join(",") %>]
            }...

假设使用FiltersFeature的网格grid

grid.filters.getFilter(dataIndexForFilterYouWant).setValue(newValue);

同样,可以使用getValue获取筛选器的值,或使用setActive使筛选器处于活动状态或非活动状态。查看文档,了解有关过滤器功能的更多信息:http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.ux.grid.FiltersFeature

或有关过滤器本身的更多信息:http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.ux.grid.filter.Filter

最新更新