我正在尝试用枚举字段过滤网格数据源。
ODataapi似乎已经弃用/删除了在服务器端使用无前缀枚举的能力。
我将以下内容添加到网格的过滤器中。
let fd1: FilterDescriptor = {
field: 'orderStatus',
operator: 'eq',
value: "SOPSModel.OrderStatusEnum'Open'",
ignoreCase: false
}
this.filter.filters.push(fd1);
问题似乎是kendo-data-query中提供的toOdataString函数将Enum标识为字符串,然后引用并转义它,这使得服务器端API拒绝该枚举并失败。
我设置了自己的过滤器解析器,它运行良好,但随着网格中添加了新的过滤选项,我真的需要一个合适的解决方案。
那么,有人能告诉我如何处理Telerik集成的OData枚举吗?
我使用以下示例更改传输参数映射:
https://docs.telerik.com/kendo-ui/api/javascript/data/datasource/configuration/transport.parametermap
类似于:
dataSource: {
type: "odata-v4",
transport: {
read: {
dataType: "json",
url: datasourceURL
},
parameterMap: function (data, type) {
var c = kendo.data.transports["odata-v4"].parameterMap(data, type);
// transform your c exactly how you wish to make the call to the service and put it on a string
return c;
}