我需要通过OData-service发送过滤值,以填充包含相关条目的表。 所以基本上有输入字段,你可以选择例如" AA" (美国航空公司)为Carrier-ID。
因此,需要根据用户输入动态创建过滤器值。
我试过以下:
var aFilters = [
new sap.ui.model.Filter({
path: "Carrid",
operator: sap.ui.model.FilterOperator.EQ,
value1: "{selection>/Carrid}"
})
];
oModel.read("/SFLIGHTSSet",{
method: "GET",
filters: aFilters,
success: function(oData2, oResponse) {
var oJSONModel = new sap.ui.model.json.JSONModel();
oJSONModel.setData({
modelData: oData2.results
});
oTable.setModel(oJSONModel);
oTable.bindRows("/modelData");
},
error: function(oError) {
console.log("Error!");
}
});
但这不起作用 我收到后续请求:
"(Carrid eq' {selection> / Carrid}')"
因此绑定在过滤器创建中不起作用......
绑定是正确的,因为我可以在Label中以相同的方式使用它:
new sap.m.Label({
text: "{selection>/Carrid}"
});
我研究了很多,并且知道人们在XML视图中遇到问题但是找不到JS-Views的任何解决方案。
答案 0 :(得分:0)
我想你的问题就在于此 “{selection> / Carrid}”
以某种方式从控件中获取用户输入的值
var sCarrid= this.byId("MySelection").getBindingContext("selection").getProperty("Carrid");
并修改您的过滤器
var oFilters = [ new sap.ui.model.Filter("Carrid",
sap.ui.model.FilterOperator.EQ,
sCarrid) ];