如何使用ComboBox过滤表格?

时间:2015-06-03 20:53:52

标签: combobox sapui5

我唯一需要知道的是,如果我可以为ComboBox中的项创建值,那么我认为我将能够完成手头的任务。我会做点什么:

var oItem1 = new sap.ui.core.ListItem("lab", {
    text: 'Lab',
    value: 'Lab'
});

var oItem2 = new sap.ui.core.ListItem("boxer", {
    text: 'Boxer',
    value: 'Boxer'
});

然后我会使用一个按钮来过滤表格,如下所示:

var oButton = new sap.ui.commons.Button({
    text: "find",
    styled: false,
    press: function () {
        var oFilter1 = new sap.ui.model.Filter("typeOfDog", sap.ui.model.FilterOperator.Contains, oItem1.getValue());
        var oFilter2 = new sap.ui.model.Filter("typeOfDog", sap.ui.model.FilterOperator.Contains, oItem2.getValue());
        var allFilter = new sap.ui.model.Filter([oFilter1, oFilter2], false);
        oTable.getBinding("rows").filter(allFilter);
    }
}).addStyleClass("searchButton").placeAt("search");

然而,这不起作用。我假设这是因为我无法为ListItem创建值。如果可以,我该怎么做?

编辑:有没有办法做一些类似CheckBox的方法,一个等效的方法.getChecked()?

2 个答案:

答案 0 :(得分:1)

我明白了。我使用了DropdownBox,并使用了以下代码:

oDropDown.attachChange(function () { oTable.getBinding("rows").filter(new sap.ui.model.Filter("payment", sap.ui.model.FilterOperator.EQ, oDropDown.getValue())); });

答案 1 :(得分:0)

我认为你也可以使用FacetFilters .FacetFilter由FacetFilterList组成,这些是表中的列。基于facetfilter表中选择的值将被过滤掉。