Angular 2 Kendo网格不支持odata v4

时间:2017-07-24 09:37:23

标签: angular kendo-ui odata

我确实尝试使用角度2 kendo网格和odata v4进行服务器端过滤,但它显示'contains'关键字不支持。使用'substringof'而不是'contains'的新版本我该如何解决这个问题

2 个答案:

答案 0 :(得分:0)

安装Odata V4并配置WebApiConfig.cs

 ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
                var customer = builder.EntitySet<CustomerModel>("CustomerSearch");

                config.Routes.MapODataServiceRoute(
                  routeName: "odata",
                  routePrefix: "odata",
                  model: builder.GetEdmModel());

'CustomerModel'是我要返回的模型 “CustomerSearch”控制器名称

Odata控制器

 [EnableQuery]
    public class CustomerSearchController : ODataController
    {

        [EnableQuery]
        public IQueryable<CustomerModel> Get()
        {
            CustomerModelResponse list = new CustomerModelResponse();
            try
            {
                list = CustomerBL.GetCustomer(0);
            }
            catch (Exception)
            {

                throw;
            }
            return list.CustomerList.AsQueryable();
        }

    }

答案 1 :(得分:0)

我们使用OData v3。

我所做的是如果它有一个contains()然后用substringof()

替换它的正则表达式

以下是一个例子:

  let queryString = toODataString(state);
  const regex = /(contains(([^)]+)\)))/;
  queryString = _.replace(queryString, regex, `substringof('${filter.value}', ${filter.field})`);

我在这里使用lodash,但我也应该使用string.replace函数