我正在将 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/