首页 文章

自定义Kendo UI Treeview构造

提问于
浏览
2

我想构建一个混合树,显示我整个系统的全局视图 . 该系统是一个内容管理系统,但它还具有其他功能,可以在构成我的全局API的“OData上下文集合”中进行管理 .

所以我试图弄清楚如何根据节点类型和动态模型元数据的散布来制作各种类型的分层数据源 .

例如 ...

我的框架中有API函数,允许我这样做......

my.api.get("Context/Type", function(odataCollectionResult) {
     ...
});

我也知道Kendo UI支持做类似......

var viewModel = new kendo.data.HierarchicalDataSource({ 
   type:'odata-v4',
   ...
});

$("#tree").kendoTreeview({ dataSource: viewModel ... });

......但我的问题是......

我如何设置一个kendo树视图,以便绑定到调用我的自定义展开和折叠函数的自定义数据源,以便我可以根据我知道的节点代表的更复杂的事情做出决策?

我需要这样做,因为根据节点类型,它的子节点将来自不同的 endpoints ,所以我不能只使用OData数据源 .

我正在尝试做这样的事情,但我似乎无法让它发挥作用......

var viewModel = {
     data: [],
     expand: function(node) {
          var myParams = { endpoint: "Context/Type", childNodeType: "Foo/Bar" };
          my.api.get(myParams.endpoint, function(data) {
              node.data.children = buildNodes(myParams.childNodetype, data);
          });
     },
     collapse: function(node) {
         ...
     }
   }
}

$("#myTree").kendoTreeview({ 
    dataSource: viewModel, 
    events: { onExpand: viewModel.expand, onCollapse: viewModel.collapse } 
});

有没有人这样做或有一些关于如何让这个工作的建议?

1 回答

相关问题