kendo-ui - 剑道树视图和树下拉列表 - 当前选择和同步更改
问题描述
这个片段 http://dojo.telerik.com/UGaFucez
有两个控件 - 树视图和树下拉。这 2 个控件共享一个数据源,因此它们显示相同的树。但令人费解的是,它们似乎也共享当前选择的值,当您在一个字段中更改选择时,它也会在另一个字段中更改。如何?数据源不应该共享当前选定的值(没有当前选定值的概念)。并且没有设置 MVVM 绑定。但不知何故,这些领域保持同步 - 任何人都可以解释为什么以及背后的原因是什么?我怎样才能断开这种依赖关系?
解决方案
实际上,经历过的行为除外。DataSource 对象保存记录的状态。换句话说,我们在 kendo 数据源对象中保留了扩展、选择、检查……等等状态。这可以在大多数情况下用作增强功能。例如,您应该只触发一个删除/创建/更新请求,并将数据应用于所有关联的小部件。但是,确实对于某些场景中是不适合的。对于您的情况,您可以拥有不同的 DataSource 实例并使用它们填充小部件:
var data= [
{
text: "Furniture", items: [
{ text: "Tables & Chairs" },
{ text: "Sofas" },
{ text: "Occasional Furniture" }
]
},
{
text: "Decor", items: [
{ text: "Bed Linen" },
{ text: "Curtains & Blinds" },
{ text: "Carpets" }
]
}
]
var ds1 = new kendo.data.HierarchicalDataSource({
data: data
});
var ds2 = new kendo.data.HierarchicalDataSource({
data: data
});
var treeview = $("#treeview").kendoTreeView({
dataSource:ds1
}).data("kendoTreeView");
$('#treeField').kendoDropDownTree({
dataSource: ds2
});
这是关于此事的道场示例:http: //dojo.telerik.com/@nenchef/ucapaTeT
推荐阅读
- java - ObjectBox (Java):对关系的属性查询不起作用
- amazon-web-services - Terraform 导入 aws_iam_group,返回错误
- local-storage - 如何更改存储插件的默认 @@STATE 键
- elixir - edeliver 无法接收来自已部署节点的 ping
- javascript - Vuejs 在计算属性中使用 foreach。刀片模板
- python - 在 Python 中将 2 个文本文件合并为一个具有 2 列的文本文件
- c# - 如何在 Unity3D 中将一个对象移向另一个对象?
- javascript - GetUIkit3 可排序:回调
- git - 从 Jenkins 上的 GitHub 克隆:无法加载 PEM 客户端证书
- jquery - 使用 2 个输入值的条件语句