我有一個表格有幾列,還有一個頂部的搜索欄執行下面的功能。我認爲給定下面的代碼,只會搜索「field1」列,但實際上如果我在另一列搜索一個術語,它會顯示出來。現在我的問題是我添加了一個新的列,我想添加到此搜索。我嘗試將其添加到filters
陣列這樣過濾表格檢查多列
new filter("fieldIWant",FilterOperator.Contains,sValue)
,但它不會工作。我讓列不可見,因爲我不希望它顯示在桌面上,但我希望它仍然可以搜索。我想我的第一個問題是爲什麼當我只指定「field1」時,搜索欄爲多個字段工作。
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);
},
注:這是預先寫好的代碼,是不是我的,所以我不想做任何重大的改變,而是明白爲什麼它的工作原理是它。 _aSelectFilters
和_aQuickFilters
不包含任何對列的搜索,他們是爲了別的。
這就是我所做的,而不是推我只是連接'filters'數組中的過濾器。這也不能解釋爲什麼我要爲多列獲取過濾器:/ – SAPUI5GUY