2012-11-05 99 views
1

我一直在阅读有关Treeview以及分层数据源和数据源的现有文档,但我有点不知道可能使用的远程数据源类型Treeview。Kendo UI Treeview和XML数据源

除了json,还支持xml,对不对?是否有可能绑定它并查看Treeview的XML文件?

我一直是这样的:

 <script> 
      var ds = new kendo.data.DataSource({ 
        transport: { 
         read: { 
          url:"http://localhost:8080/OnTheSpotRestfullAPI/testTree.xml" 
         } 
        }, 
        schema: { 
         type: "xml", 
         data: "/tree/vehicles", 
         model: { 
          fields: { 
           car: "car/text()", 
           bike: "bike/text()" 
          } 
         } 
        } 
       }); 

      $("#treeview").kendoTreeView({ 
       dataSource: ds 
      }); 
     </script> 

与testTree.xml之中:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>  
<tree> 
    <vehicles> 
     <car>FM-1100</car> 
     <car>FM-4200</car> 
     <bike>FM-3100</bike> 
    </vehicles> 
    <personnel> 
     <client>GH-3000</client> 
     <vip>GH-3100</vip> 
    </personnel> 
</tree> 

我想要得到的树是这样的:

(车辆)

- (汽车)

---- FM-1100

---- FM-4200

- (自行车)

---- FM-3100

(人事)

- (客户端)

---- GH-3000

- (VIPS)

---- GH-3100

PS。 ()中的名称应该是类似于包含他们的“子女”的文件夹

但是我似乎无法完全查看该树..有点失去了,有人可以请我指向正确的方向?

在此先感谢

回答

3

只是为了确保:你应该执行脚本代码的HTML被加载后,所以你应该

<script> 
    $(document).ready(function() { 
     // The JavaScript code goes here 
    }); 
</script> 

包围它的数据源ds应该定义HierarchicalDataSource而不是DataSource 。 读你XML的例子我不确定层次结构如何组织(树),树的内容应该是什么。

你可以尝试这样的:

<script> 
    $(document).ready(function() { 
     var ds = new kendo.data.HierarchicalDataSource({ 
      transport:{ 
       read:{ 
        url:"testTree.xml" 
       } 
      }, 
      schema :{ 
       type :"xml", 
       data :"/tree/vehicles/car", 
       model:{ 
        fields:{ 
         text:"text()" 
        } 
       } 
      } 
     }); 


     $("#treeview").kendoTreeView({ 
      dataSource :ds 
     }); 
    }); 
</script> 

和XML是这样的:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<tree> 
    <vehicles> 
     <car>FM-1100</car> 
     <car>FM-4200</car> 
     <bike>FM-3100</bike> 
    </vehicles> 
    <personnel> 
     <client>GH-3000</client> 
     <vip>GH-3100</vip> 
    </personnel> 
</tree> 

注:不知道做什么用bike

+0

事实上你的答复显示的两个结果元素。 我编辑我的问题,以显示我想要树。 – CipherDarkness

+2

您需要根据您的定义使用您的XML进行编程。 'TreeView'和'HierarchicalDataSource'单独加载每个节点:'TreeView'为每个新节点发出'DataSource.transport'读取。这样说,你要么改变你的服务器代码+ XML格式来接受类似的东西:给我这个节点的孩子,或者使用schema.parse/schema.data将你的XML转换成TreeView接受的JSON。 – OnaBai

+0

我看到了,你能否再解释一下“改变你的服务器代码+ XML格式来接受类似的东西:给我这个节点的孩子”部分?另外我所看到的树视图无法一次加载整个json文件,但你必须建立一个服务器,以便它可以通过回调一次加载树的一个阶段我认为:S – CipherDarkness