Asp.net mvc 3 Telerik MVC扩展网格:如何使用JavaScript进行过滤?

Asp.net mvc 3 Telerik MVC扩展网格:如何使用JavaScript进行过滤?,asp.net-mvc-3,telerik,telerik-grid,telerik-mvc,Asp.net Mvc 3,Telerik,Telerik Grid,Telerik Mvc,我试着尽我所能去研究这个问题,但是找不到一个基本的例子。我有一个带有Telerik网格的ASP MVC 3项目。由于空间限制,轴网的某些列被隐藏。有一个单独的UI元素,允许用户为所有列(可见或隐藏)选择筛选值。我知道必须有一种方法从客户端视图外部控制网格的过滤内容-状态: 过滤比: 返回网格的当前筛选器表达式。初始值为空字符串。检查filter JavaScript方法以获取其他参考 但是我找不到额外的参考资料。根据我从网上收集到的信息,我应该这样做: var grid = $("#Grid")

我试着尽我所能去研究这个问题,但是找不到一个基本的例子。我有一个带有Telerik网格的ASP MVC 3项目。由于空间限制,轴网的某些列被隐藏。有一个单独的UI元素,允许用户为所有列(可见或隐藏)选择筛选值。我知道必须有一种方法从客户端视图外部控制网格的过滤内容-状态:

过滤比:

返回网格的当前筛选器表达式。初始值为空字符串。检查filter JavaScript方法以获取其他参考

但是我找不到额外的参考资料。根据我从网上收集到的信息,我应该这样做:

var grid = $("#Grid").data("tGrid");

grid.filter("OrderID~eq~10248");
但当它尝试执行时,我得到以下JavaScript错误:

grid.filterBy不是函数

我做错了什么?有人能告诉我filterBy方法的细节吗

编辑:

我将代码更改为:

$("#btnFilter").click(function (e) {
    var grid = $("#Grid").data("tGrid");
    grid.filter("Off_Plan~eq~'No Funds'");
});
仍然会得到相同类型的错误: grid.filter不是一个函数

显然我是telerik的新手。好像我丢失了一些telerik javascript文件。。。?我作为一个新的Telerik MVC应用程序启动了这个VisualStudio项目。脚本注册器在那里,我已经添加了
到_Layout.cshtml。呻吟

我觉得你把两件事搞混了

网格上有一个名为filterBy的属性,它获取实际的过滤器。 网格上有一个方法,名为,它根据给定的过滤表达式过滤网格

下面是一些代码:

var grid = $("#Grid").data("tGrid");

var currentFilter = grid.filterBy; //it will be ""

grid.filter("OrderID~eq~10248"); // filtering the grid with OrderID equals 10248

currentFilter = grid.filterBy // now it will return "OrderID~eq~10248"
这就是为什么grid.filterByOrderID~eq~10248;作为一种方法是行不通的

编辑:

只有在启用了网格过滤的情况下,客户端过滤才起作用。另请参见下的文档


我想你把两件事搞混了

网格上有一个名为filterBy的属性,它获取实际的过滤器。 网格上有一个方法,名为,它根据给定的过滤表达式过滤网格

下面是一些代码:

var grid = $("#Grid").data("tGrid");

var currentFilter = grid.filterBy; //it will be ""

grid.filter("OrderID~eq~10248"); // filtering the grid with OrderID equals 10248

currentFilter = grid.filterBy // now it will return "OrderID~eq~10248"
这就是为什么grid.filterByOrderID~eq~10248;作为一种方法是行不通的

编辑:

只有在启用了网格过滤的情况下,客户端过滤才起作用。另请参见下的文档


我试过你的解决办法;请参阅我对原始帖子的编辑。仍然失败,但有相同的评论…grid.filter不是一个函数。当网格不可过滤时,我能够重新处理您的问题。请参阅我的最新答案。若它不能解决您的问题,请发布您的网格构建代码。最后一个问题:您是否知道一个资源,我可以从中获得在筛选器中工作的运算符列表?我知道“eq”,我想我看到了一个“startswith”,可能还有一个“substring”……我非常想找到关于这个的文档。我想这些列表列出了所有可用的filterOperator和filterFunction。我尝试了你的解决方案;请参阅我对原始帖子的编辑。仍然失败,但有相同的评论…grid.filter不是一个函数。当网格不可过滤时,我能够重新处理您的问题。请参阅我的最新答案。若它不能解决您的问题,请发布您的网格构建代码。最后一个问题:您是否知道一个资源,我可以从中获得在筛选器中工作的运算符列表?我知道“eq”,我想我已经看到了一个“startswith”和一个“substring”…非常想找到关于这个的文档。我想这些列表列出了所有可用的filterOperator和filterFunction。