gpt4 book ai didi

javascript - SAPUI5 过滤器仅适用于字符串

转载 作者:行者123 更新时间:2023-12-03 06:39:07 26 4
gpt4 key购买 nike

我想按 TypeID 过滤我的列表,但我的 ID 是数字 (int32),而且我认为“包含”过滤器不适用于数字。

onSearch : function (oEvt) {
var sQuery = oEvt.getSource().getValue();
var list = this.getView().byId("myList");
var binding = list.getBinding("items");

if (sQuery && sQuery.length > 0) {
binding.filter( [ new sap.ui.model.Filter([
new sap.ui.model.Filter("TypeID", sap.ui.model.FilterOperator.Contains, window.global.TypeID ) //Error: request failed due to invalid system query options value!
],false)]);
}
},

有什么帮助吗?

最佳答案

从 OData Angular 来看,过滤器操作“Contains”被转换为 OData 操作“substring”。正如该操作的名称所暗示的,它只能用于字符串。如果您想过滤非字符串,则必须使用 FilterOperator.EQ,但这不允许您过滤属性的部分内容。

如果您需要过滤数字属性的某些部分,例如23 要查找 1234,您必须应用客户端过滤并构建一个为您执行过滤的例程。

而不是使用以下方式实例化过滤器:

new Filter("TypeID", FilterOperator.Contains, typeID);

您必须使用以下方法实例化过滤器:

new Filter("TypeID", fnTest);

请注意,客户端过滤可能会导致从后端提取大量数据。因此请谨慎使用。

或者,您当然也可以尝试与负责后端逻辑的人员交谈,看看他们是否可以将搜索属性重新定义为字符串而不是数值。

关于javascript - SAPUI5 过滤器仅适用于字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38048863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com