与现有聚合绑定的其他过滤器

时间:2018-06-05 15:13:13

标签: javascript filter sapui5 sap aggregation

我有一个值帮助对话框,其中的行的行绑定如下:

        // 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);

但由于某种原因,过滤器未应用。如果我从bindAggregation调用中删除aFilters,则其他过滤器可以正常工作。

1 个答案:

答案 0 :(得分:0)

作为I.B.N.说,你正在更换过滤器,没有添加新过滤器......

我的建议是将过滤器的当前状态保存在控制器的全局变量中,或者保存在"视图模型中#34;

然后在推送新过滤器并再次设置之前检索它们。

如果您使用视图模型,它将是这样的

//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);