【问题标题】:Filtering a grid with an OData Enum as a field使用 OData 枚举作为字段过滤网格
【发布时间】:2018-04-22 08:41:54
【问题描述】:

我正在尝试使用枚举字段过滤网格数据源。

OData api 似乎已弃用/删除了在服务器端处理无前缀枚举的能力。

我将以下内容添加到网格的过滤器中。

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 枚举的方向?

【问题讨论】:

    标签: kendo-ui kendo-grid kendo-ui-angular2


    【解决方案1】:

    我使用这个例子来改变传输参数映射:

    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; 
    }
    

    【讨论】:

      猜你喜欢
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      • 2014-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多