如何手动设置kendoui树列表的数据



我想在运行时为kendoui树列表设置数据源。请检查以下示例。如果我在设计时设置数据源,我就可以看到控件中的数据。但是,如果我试图在运行时设置数据源,我在控件中看不到数据。

<div id="treeList"></div>
<script>
  var data = [ { name: "Jane Doe" }, { name: "John Doe" }];
    var dataSource = new kendo.data.TreeListDataSource({
      data: [ { name: "Jane Doe" }, { name: "John Doe" }]
    });
    $("#treeList").kendoTreeList({
      columns: [
          { field: "name" },
          { command: [{ name: "edit" }] }
      ],
      editable: true
      //,dataSource: dataSource
    });
  var grid = $("#treelist").data("kendoTreeList");
  grid.setDataSource( dataSource);
  grid.dataSource = dataSource;
   grid.dataSource.read();
  grid.dataSource.data(data);
</script>

问题似乎出在选择器本身。您的逻辑还可以,但由于某种原因,data("kendoTreeList")返回的对象为null。我更新了您的代码,以便在kendoTreeList初始化后链接data

var dataSource = new kendo.data.TreeListDataSource({
  data: [ { name: "Jane Doe" }, { name: "John Doe" }]
});
var grid = $("#treeList").kendoTreeList({
  columns: [
      { field: "name" },
      { command: [{ name: "edit" }] }
  ],
  editable: true
}).data("kendoTreeList");
grid.setDataSource(dataSource);

说起来有点奇怪,但我认为你的代码和我的代码是等效的。显然不是,但我不明白为什么。

您的主要问题是将DOM元素的id设置为"treeList"。

var grid = $("#treelist").data("kendoTreeList");

正如您在这里看到的,您在设置网格变量时使用了全部小写字母。那是你唯一的问题。它应该是这样的:

var grid = $("#treeList").data("kendoTreeList");

相关内容

  • 没有找到相关文章

最新更新