DJ_Tagman
DJ_Tagman

Reputation: 21

How to filter case insensitive my OData in a UI5 app?

I am trying to filter a data set with a searchField, but when building the filter, there is no documented way to filter case-insensitive. Could you help me?

This is how I build my filter:

var oFilter = new sap.ui.model.Filter("name", sap.ui.model.FilterOperator.Contains, sQuery);

Upvotes: 1

Views: 5179

Answers (2)

Plamen Kasabov
Plamen Kasabov

Reputation: 135

you can use the OData tolower() function to compare to lower-case strings.

var oFilter = new Filter("tolower(name)",
     FilterOperator.Contains,"'" + sQuery.toLowerCase().replace("'","''") + "'");

sap.ui.model.Filter and sap.ui.model.FilterOperator must be referenced.

Case insensitive filter explained

Upvotes: 2

TiiJ7
TiiJ7

Reputation: 3412

You can create a custom filter by manually providing the filter function (docu)

var oFilter = new sap.ui.model.Filter({
    path: "name",
    test: function(sValue) {
        return sValue.toLowerCase().indexOf(sQuery.toLowerCase()) !== -1;
    }
});

Upvotes: 2

Related Questions