javascript - Kendo UI Grid - 动态添加/删除过滤器
问题描述
我需要创建一个剑道 ui 网格。由于这有很多过滤器,我需要有 4 个常规过滤器,其余的应该能够根据用户的选择动态添加。有人可以提供帮助吗?
解决方案
为了按文本框过滤,您可以连接一个keyUp
事件以检索值。然后,您可以将其作为过滤器添加到现有filter
对象。
$('#NameOfInput').keyup(function () {
var val = $('#NameOfInput').val();
var grid = $("#yourGrid").data("kendoGrid");
var filter = grid.dataSource.filter();
filter.filters.push({
field: "NameOfFieldYouWishToFilter",
operator: "eq",
value: val,
FilterName: "UniqueIdentifierForFilter"
});
grid.dataSource.filter(filter);
});
使用下拉框,您可以通过使用onChange
事件来实现所需的功能,使用 获取值$('#yourDropDown').val();
。
如果您需要额外的逻辑来添加/删除过滤器,则这FilterName
是可选的。即,您可以使用它来确定过滤器是否已经存在于数组中,如果存在,您可以使用splice
它来删除它。
编辑
使用FilterName
您可以搜索以查看过滤器是否已存在并将其删除:
var filterIndex = filter.filters.map((e: any) => { return e.FilterName }).indexOf("UniqueIdentifierForFilter");
if (filterIndex > -1)
{
filter.filters.splice(filterIndex, 1);
}
推荐阅读
- c++ - 错误:未定义对...的引用有什么问题?
- asp.net-mvc - 如何将 http:\\localhost:8001 更改为 Electron .Net Core 应用程序的 HTTPS
- javascript - 循环浏览文件夹的所有内容以放在网站上
- html - 将床原始 html 表单添加到房间原始 html 作为弹出窗口以添加大量床
- next.js - NextJS - 未定义窗口
- java - 在 Spring AMQP 中根据其消费者数量来消费一个队列
- amazon-web-services - 具有两个 ENI 和公共 IP 的 EC2 实例
- joi - 如何在模式中使用嵌套 JSON
- android - 通过数据绑定初始化 Surface View
- pickle - 如何解决“输入不足”错误