Фильтр, использующий нижеследующий код, не работает. Я создал приложение, используя шаблон из Web IDE, а затем привязал OData к списку в XMLView, применяя фильтр для поиска.Фильтрация данных в UI5
Вид:
<SearchField liveChange="onSearch" id="master1SearchField" search="onSearch"/>
<List id="master1List" items="{path:'/DetailsSet'}">
<items>
<ObjectListItem id="master1ListItem">
<attributes>
<ObjectAttribute text="{Name}"/>
</attributes>
</ObjectListItem>
</items>
</List>
Контроллер:
onSearch : function(oEvent) {
var sFilteredValue = oEvent.getSource().getValue();
var oFilter = new sap.ui.model.Filter("Name", sap.ui.model.FilterOperator.Contains, sFilteredValue);
var oElement = this.getView().byId("table");
var oBinding = oElement.getBinding("items");
oBinding.filter([oFilter]);
}
Если вы переключитесь в режим отладки, вы должны увидеть на сетевой вкладке запрос фильтра на бэкэнд и его ответ. Это работает? Как это выглядит? Если вы находитесь в отладчике, что значение «sFilteredValue» здесь: «вар sFilteredValue = oEvent.getSource() ПолучитьЗначение();» Пожалуйста, сравните также с кодировкой образца в: https: // sapui5.hana.ondemand.com/explored.html#/sample/sap.m.sample.ListSelectionSearch/code/List.controller.js –
Вы применяете фильтр к правильному управлению? Идентификатором вашего 'oElement' является' 'table", тогда как список имеет идентификатор '' master1List''. – boghyon
Что возвращается сюда? 'var sFilteredValue = oEvent.getSource(). getValue();' – neeko