datasource - Treeview 的 Kendo 分层数据源,过滤到选中的节点

标签 datasource kendo-ui kendo-treeview

我正在将 Kendo 分层数据源用于 Kendo UI Treeview 。
在单击事件中,我只想将选中的 rom 保留在数据源中。

我试过了

    $('#treeview')
         .getKendoTreeView()
         .dataSource
         .filter({ 
                  field: "checked", 
                  operator: "eq", 
                  value: true });

但无济于事。

我有正确的字段吗?

另外,对于奖励积分,如何移除过滤器?

最佳答案

checked 是正确的字段,如果你在模板中定义了它:

$("#treeview").kendoTreeView({
    checkboxes: { template: "<input type='checkbox' name='checkedNodes' #= item.isChecked ? 'checked' : '' # value='#= item.id #' />" },
    dataSource: [{ 
        id: 1, text: "My Documents", expanded: true, spriteCssClass: "rootfolder", items: [
            { id: 2, text: "about.html", expanded: true, isChecked: false, spriteCssClass: "folder" },
            { id: 3, text: "index.html", expanded: true, isChecked: true, spriteCssClass: "folder" }
        ]
     }]
});

在我的例子中,它被命名为 isChecked(参见我的代码中的 item.isChecked)。

但是,为了正确过滤,请注意: filter 仅作用于当前级别(例如参见此 question )。

对于您的奖金问题,要删除过滤器,只需应用以下代码:
$('#treeview')
     .data("kendoTreeView")
     .dataSource
     .filter({ });

(在您的层次结构的所有级别上与以前相同!)。

编辑

为了使用过滤器,这里有一些 fiddle : http://jsfiddle.net/scaillerie/RHh67/

关于datasource - Treeview 的 Kendo 分层数据源,过滤到选中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13487517/

相关文章:

datasource - Spring Boot JNDI 数据源查找失败 - 在上下文 "java:"中找不到名称 comp/env/jdbc

java - 配置数据源属性

jdbc - 多个数据源到 Websphere Liberty Profile

jquery - 使用 Kendo UI Mobile 以编程方式触发点击事件

javascript - MVC4 中的 Kendo UI 网格单元格着色

Angularjs Kendo Treeview 未在 Kendo 弹出窗口中显示复选框

Grails - grails.config.locations 不适用于类路径和 .properties 文件

javascript - Kendo DropdownList 服务器过滤添加参数

angularjs - Kendo Treeview : How to set Intermediate state Programmatically

javascript - KendoUI Treeview 根据值展开节点