我正在尝试通过文本和用按钮过滤kendo-ui treeView,以显示或不显示树中的某些根。
我已经使用this来过滤带有输入的树形视图,并且它运行良好,最重要的是,我想过滤根节点。
我使用treeview react component of kendo-ui.
当我单击某些按钮时,我将隐藏属性设置为根节点,然后对其进行重新过滤。
public handleClick() {
const dataSource: kendo.data.DataSource = $("[data-role='treeview']").data("kendoTreeView").dataSource;
const data = dataSource instanceof kendo.data.HierarchicalDataSource && dataSource.data();
_.forEach(data as kendo.data.ObservableArray, (item) => {
if (item.type === this.props.controlNode) {
item.hidden = this.props.filter;
}
});
dataSource.filter({ field: "hidden", operator: "neq", value: true });
dataSource.filter().logic = "and";
}
我的按钮具有controlNode
属性,可以与我的dataSource内部的type属性进行比较。我遍历dataSource的第一个子对象,如果类型匹配,则根据过滤器状态将hidden属性设置为true或false。
所以我的问题是dataSource.filter({ field: "hidden", operator: "neq", value: true });
不过滤数据源。但是,如果我使用运算符eq
而不是neq
,则会出现相反的行为,但是它可以正常工作...
我不知道我做错了什么。