Ich habe eine Tabelle mit mehreren Spalten und auch eine Suchleiste an der Spitze, die die folgende Funktion ausführt. Ich dachte, dass angesichts des unten stehenden Codes nur die Spalte "field1" gesucht würde, aber wenn ich nach einem Begriff in einer anderen Spalte suche, wird er angezeigt. Jetzt ist mein Problem, dass ich eine neue Spalte hinzufügen möchte, die ich zu dieser Suche hinzufügen möchte. Ich versuche Zugabe zu dem filters
Array wie dieseFiltertabelle überprüft mehrere Spalten
new filter("fieldIWant",FilterOperator.Contains,sValue)
aber es wird nicht funktionieren. Ich habe die Spalte unsichtbar gemacht, weil ich nicht möchte, dass sie auf dem Tisch angezeigt wird, aber ich möchte, dass sie immer noch durchsucht werden kann. Ich denke, meine erste Frage ist, warum die Suchleiste für mehrere Felder funktioniert, wenn ich nur "field1" angegeben habe.
onSearchPressed : function() {
var sValue = this.byId("searchField").getValue();
var aFilters = [];
var filters = [new Filter("field1","EQ",sValue)];
aFilters = filters;
var oFilter = new Filter({aFilters : filters});
if (!aFilters) {
aFilters = [];
}
this._aSearchFilters = aFilters;
if (this._aSelectFilters) {
aFilters = aFilters.concat(this._aSelectFilters);
}
if (this._aQuickFilters) {
aFilters =aFilters.concat(this._aQuickFilters);
}
var oBinding = this.byId("catalogTable").getBinding("items");
oBinding.filter(aFilters);
},
HINWEIS: Das war prewritten Code und ist nicht von mir, so will ich keine großen Änderungen vornehmen, sondern verstehen, warum es funktioniert, wie es der Fall ist. _aSelectFilters
und _aQuickFilters
enthalten keine Suche nach Spalten, sie sind für etwas anderes.
Das habe ich gemacht, anstatt zu pushen habe ich nur die Filter im Array 'filters' verkettet. Dies erklärt auch nicht, warum ich Filter für mehrere Spalten erhalte: – SAPUI5GUY