我正在使用Kendo Hierarchical Datasource用于Kendo UI Treeview。 在单击事件上,我想只在数据源中保留已检查的roms。
我试过
$('#treeview')
.getKendoTreeView()
.dataSource
.filter({
field: "checked",
operator: "eq",
value: true });
但无济于事。
我有正确的字段吗?
另外,对于奖励积分,我该如何删除过滤器?
答案 0 :(得分:3)
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/。