javascript - 重置kendo多过滤器复选框数据源以反射(reflect)过滤后的数据

标签 javascript jquery asp.net-mvc kendo-ui kendo-chart

我正在尝试过滤多个字段的数据源。我的网格上有一个 Kendo Multi 过滤器复选框选项。我为每一列初始化了每个 Kendo 多重过滤器。

之后,我使用像这样的 javascipt 函数应用过滤器,并将网格数据设置为过滤后的数据。

function filterGrid() {
    var grid = $("#grid").data('kendoGrid');
    var filter = [];
    filter.push({ field: "ratingPlace", operator: "startswith", value: "US" });
    grid.dataSource.filter(filter);
    grid.dataSource.data(grid.dataSource.view());
}

因此该函数将过滤器应用于网格。现在,当我单击 Kendo 多重过滤器选项时,旧数据源中的所有数据都会显示在过滤器列表中。

如何避免这种情况?我只需要过滤后的数据仅在过滤后的列表中可用,而不是在整个数据源项中可用。我没有这个 执行 filterGrid() 函数后初始化 Kendo 多个复选框过滤器时出现问题。有没有办法重新初始化源 (“kendoFilterMultiCheck”)每列??我附上了一个 jsfiddle 示例来演示相同的内容。

1) 首先通过单击具有初始数据源的列标题来初始化所有过滤器多重复选框 2)点击过滤按钮 3)数据源被替换 4)点击过滤器多重检查新的数据源 - 旧的过滤器数据出现在列表中

http://jsfiddle.net/Sbb5Z/1712/

最佳答案

我的建议是为多重过滤器复选框定义自定义数据源,然后调用其读取方法来重新加载数据。

$("th.k-filterable[data-field='ratingPlace']").data().kendoFilterMultiCheck.checkSource.read();

Reload Multiselect Filter Box when grid data changes

关于javascript - 重置kendo多过滤器复选框数据源以反射(reflect)过滤后的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29798819/

相关文章:

jquery - 如何将数据表与 Symfony 4 和 Webpack Encore 一起使用?

php - 使用 $.ajax 请求从 PHP 到 MYSQL 数据库的 jQuery 表单处理

c# - 在 C# 和 ASP.NET MVC 中将音频直接从 url 流式传输到 Web 浏览器?

javascript - Nest.js : initialization of property from controller's superclass

javascript - 什么时候在 javascript 中使用对象或数组?

javascript - Openlaszlo WebSocket 不工作

javascript - HTML5 JavaScript 下载属性

javascript - jQuery 的 trim() 前面带有 not 运算符

c# - 入口后面带有 Azure OAuth 的 ASP.NET Core MVC 进入无限登录循环

c# - 多行有多个提交按钮,我应该为每个按钮制作一个表单吗?