过滤多个列

pad*_*bro 3 sapui5 sap-fiori

s如果我有一个表,我可以从一列过滤:

  handleSearch: function(oEvent) {
                var sValue = oEvent.getParameter("value");
                var oFilter = new sap.ui.model.Filter("RAG_SOC_1", sap.ui.model.FilterOperator.Contains, sValue);
                var oBinding = oEvent.getSource().getBinding("items");
                oBinding.filter([oFilter]);
          },
Run Code Online (Sandbox Code Playgroud)

但我可以从更多cols过滤?

例如,如果我有cols:A,B,C,B,如果我在搜索栏中写"hello",我想要在字段A或B或C或D中包含"hello"字样的所有结果

Hao*_*jie 7

请参阅以下代码:

var oFilter1 = new sap.ui.model.Filter("A", sap.ui.model.FilterOperator.Contains, sValue);
var oFilter2 = new sap.ui.model.Filter("B", sap.ui.model.FilterOperator.Contains, sValue);
var oFilter3 = new sap.ui.model.Filter("C", sap.ui.model.FilterOperator.Contains, sValue);
var oFilter4 = new sap.ui.model.Filter("D", sap.ui.model.FilterOperator.Contains, sValue);
var allFilter = new sap.ui.model.Filter([oFilter1,oFilter2,oFilter3,oFilter4]); 
var oBinding = oEvent.getSource().getBinding("items");
oBinding.filter(allFilter);
Run Code Online (Sandbox Code Playgroud)

文档:

new sap.ui.model.Filter(aFilters,bAnd);

aFilters是sap.ui.model.Filter的其他实例的数组.如果设置了bAnd,则过滤器内的所有过滤器都将进行AND运算,否则它们将被OR运算.