Kendo树视图和树下拉列表-当前选择和更改同步

时间:2018-12-17 07:37:25

标签: kendo-ui kendo-treeview

此代码段 http://dojo.telerik.com/UGaFucez

具有两个控件-树视图和树下拉菜单。这两个控件共享一个数据源,因此它们显示相同的树。但是令人费解的是,它们似乎也共享当前选择的值,并且当您在一个字段中更改选择时,在另一个字段中它也会更改。 怎么样?数据源不应共享当前选定的值(没有当前选定值的概念)。并且没有设置MVVM绑定。但是各个领域保持同步-有人可以解释其原因以及背后的原因吗?以及如何断开这种依赖性?

1 个答案:

答案 0 :(得分:0)

实际上,有经验的行为是例外。 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