自定义网格过滤表达式

时间:2018-03-22 16:13:25

标签: kendo-grid kendo-ui-angular2

快速项目背景:我正在将一些Telerik for ASP.NET网格/后端数据源移植到Kendo angular UI框架。

问题:我正在尝试实现网格过滤(必须自定义,因为我手动绑定以处理复杂的分页/数据检索。

  1. 是否有任何方法/函数来检索过滤器字符串而不是包含过滤器和运算符的对象模型? (显然,我可以自己弄平,但这是一些代码)。这是一个代码片段......
  2. if (filter !== undefined) {
                // Step through column filters
                filter.filters.forEach((element: any) => {
                    // console.log(element);
    
                    // Step through individual filter for column
                    element.filters.forEach((curFilter: any) => {
                        console.log(curFilter.field);
                        console.log(curFilter.operator);
                        console.log(curFilter.value);
                    });
                });
            }

    1. 我仍在使用.NET网格用于其过滤表达式的动态linq查询。 grid.filters出来的过滤器表达式是否可以在后端使用linq动态查询正常工作,还是需要转换?
    2. 我觉得我在这里错过了什么,所以我想我会开始谈话。

      谢谢! -Brian

1 个答案:

答案 0 :(得分:1)

我相信根据您的评论回答您尝试做的是获取过滤器和排序,分页就像它在网络上发送给MVC一样。

要让kendo执行此操作,您需要设置数据源类型并在页面中包含正确的文件。

文件名是kendo.aspnetmvc.js或kendo.aspnetmvc.min.js

并且您的数据源初始化应指定

 df_l<-shift(df, n=1L, fill=NA, type=c("lead"), give.names=FALSE)

或者他们正在做同样的事情

此脚本的cdn为https://kendo.cdn.telerik.com/2018.1.221/js/kendo.aspnetmvc.min.js

我知道他们使用这些功能来做你正在谈论的事情

dataSource: {
   transport: {
      type: 'aspnetmvc-ajax'
   }
}