2012-11-05 145 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