使用以下代碼的過濾器不起作用。我使用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」這裏的價值: 「 VAR sFilteredValue = oEvent.getSource()的getValue();」 請也比較樣本編碼中: https://開頭sapui5.hana.ondemand.com/explored.html#/sample/sap.m.sample.ListSelectionSearch/code/List.controller.js –
您是否在正確的控件上應用了過濾器? 「oElement」的ID是「table」,而列表的ID是「master1List」。 – boghyon
這裏返回什麼? 'var sFilteredValue = oEvent.getSource()。getValue();' – neeko