我已经在ui5控制器文件中为搜索字段编写了代码,但是当我在输入搜索字段中粘贴特定的列值时,搜索字段没有提供预期的输出。相反,如果我在搜索字段中键入值,则会给出准确的输出。 我使用了livechange事件。我也尝试了搜索事件,但无法获得输出。 我正在使用odata服务。
下面是控制器文件代码:
onSearch: function(oEvt) {
// add filter for search
var aFilters = [];
var sQuery = oEvt.getSource().getValue();
if (sQuery && sQuery.length > 0) {
var filter = new Filter("UNIQUE_ID", sap.ui.model.FilterOperator.EQ, sQuery);
aFilters.push(filter);
}
// update list binding
var list = this.byId("orderTable");
var binding = list.getBinding("items");
binding.filter(aFilters);
}
查看代码: 标签class =“ sapUiMediumMarginTop” text =“唯一ID”
SearchField width =“ 150px” class =“ sapUiSmallMargin” liveChange =“ onSearch”
如果我有任何遗漏,请提出建议。
答案 0 :(得分:0)
也许这个例子可以帮助您?我用一些随机数据测试了您的代码,它对我有用。
onSearch: function(oEvent) {
var sQuery = oEvent.getParameter("query");
var oFilter1 = new Filter("Name", FilterOperator.Contains, sQuery);
var oFilter2 = new Filter("Age", FilterOperator.Contains, sQuery);
var arrFilter = new Filter([oFilter1, oFilter2], false);
// filter binding
var oList = this.byId("idList");
var oBinding = oList.getBinding("items");
oBinding.filter(arrFilter);
},