1

我正在为 Kendo UI Treeview 使用 Kendo Hierarchical Datasource。在单击事件中,我只想在数据源中保留已检查的 rom。

我试过

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

但无济于事。

我有正确的字段吗?

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

4

1 回答 1

4

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仅作用于当前级别(例如,请参阅此问题)。

对于您的奖励问题,要删除过滤器,只需应用以下代码:

$('#treeview')
     .data("kendoTreeView")
     .dataSource
     .filter({ });

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


编辑

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

于 2012-11-21T08:31:24.863 回答