【问题标题】:Kendo Hierarchical Datasource for treeview, filter to checked nodes用于树视图的 Kendo 分层数据源,过滤到选中的节点
【发布时间】:2012-11-21 06:22:15
【问题描述】:

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

我试过了

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

但无济于事。

我的字段是否正确?

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

【问题讨论】:

  • 什么是getKendoTreeView()?我在文档中找不到它。不应该是$('#treeview').data("kendoTreeView").dataSource.filter(....)
  • 当我运行它们时,我得到了同样的结果

标签: datasource kendo-ui kendo-treeview


【解决方案1】:

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({ });

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


编辑

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

【讨论】:

    猜你喜欢
    • 2011-11-10
    • 1970-01-01
    • 2022-08-16
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多