дополнительные фильтры по связыванию с существующей агрегацией - PullRequest
0 голосов
/ 05 июня 2018

У меня есть диалоговое окно справки по значению с таблицей, строки которой связаны следующим образом:

        // set data
        oValueHelpDialogTable.bindAggregation("rows", {
            path: "/ProductSet",
            filters: aFilters
        });

с фильтрами, которые применяются к источнику oData.

Теперь я хочу установить дополнительные фильтры через панель фильтров:

var bFilters = [];
bFilters.push(new sap.ui.model.Filter(aKeys[0], sap.ui.model.FilterOperator.Contains, oSearchField.getValue()));
var oTableBinding = oValueHelpDialogTable.getBinding();
oTableBinding.filter(bFilters);

Но по какой-то причине фильтры не применяются.Если я удаляю aFilters из вызова bindAggregation, дополнительные фильтры работают.

1 Ответ

0 голосов
/ 12 июня 2018

Как говорит IBN, вы заменяете свои фильтры, а не добавляете новые ...

Моя рекомендация - сохранять текущее состояние фильтров в глобальной переменной в вашем контроллере или в представлении «представление».модель "

Затем просто извлеките их, прежде чем нажать новый фильтр и установить их заново.

Если вы используете модель вида, это будет что-то вроде

//To save the current filters
this.getView().getModel("myViewModelName").setProperty("/currentFilters", aFilters)

//To retrieve the current filters
var bFilters = this.getView().getModel("myViewModelName").getProperty("/currentFilters")
bFilters.push(new sap.ui.model.Filter(aKeys[0], sap.ui.model.FilterOperator.Contains, oSearchField.getValue()));
var oTableBinding = oValueHelpDialogTable.getBinding();
oTableBinding.filter(bFilters);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...