Сделать фильтр в магазине Ext Js - PullRequest
0 голосов
/ 24 октября 2019

Мне нужно создать фильтр в магазине, чтобы только в моем поле со списком приходили значения, которые main_type равны 0.

Это мой компонент Ext Js:

            {
                xtype: 'combobox',
                name: 'main_sector',
                fieldLabel: 'Principal',
                displayField: 'name',
                valueField: 'id',
                labelAlign: 'top',
                margin: { left: 3},
                store: 'company.EconomicActivity',
                inputWidth: 120,
                editable: true,
                queryMode: 'local',
                id: "main_sector_combo",
                disabled: true
            }

И вот у меня есть мой внутренний контроллер, где я выполняю условия фильтрации:

protected function _filterConditions($property, $value, $table, $adp) {
    switch ($property) {
        case 'id':
            return $adp->quoteInto('id = ?', (int)$value);
            break;
        case 'owner_id':
            return $adp->quoteInto('owner_id = ? OR owner_id is null', (int)$value);
            break;
        case 'number':
            return $adp->quoteInto('number = ?', (int)$value);
            break;
        case 'name':
            return $adp->quoteInto('name ILIKE ?', '%' . $value . '%');
            break;
    }
    return null;
}

И вот у меня есть мой внешний контроллер, где я делаю фильтры:

        var sectorStore = Ext.getStore('company.EconomicActivity');

        sectorStore.clearFilter(true);

        var filters = [
            { id : 'number', property : "number", value : 0}
        ];

        sectorStore.load({
            filters: filters,
            scope: this,
        });

Этомой магазин:

Ext.define('S1.store.company.EconomicActivity', {
    extend: 'Ext.data.Store',
    autoLoad: true,
    model: 'S1.model.company.EconomicActivity',
    proxy: 'companyeconomicactivity',
    storeId: 'companyeconomicactivity',
    pageSize: 40,
    remoteFilter: true,
    remoteSort: true,
    remoteGroup: true,
    sorters: [
        {
            property: 'main_sector',
            direction: 'ASC'
        }
    ]
});

но он не работает, у кого-нибудь есть идеи?

1 Ответ

1 голос
/ 24 октября 2019

Метод загрузки магазина не принимает filters config. Вместо этого используйте метод filter:

    sectorStore.filter(filters);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...