2013-10-31 60 views
1

kendo ui是否支持嵌套數據源? 我有一個表格,我需要其中一列有一個嵌套的表格。我沒有使用json來填充。 在我能夠找到的任何小文檔中都說支持嵌套數據源,但是那些使用json。 如果有人能提供一個如何實現這個的例子,這將是非常有益的。Kendo UI中的嵌套數據源

回答

1

簡短的回答:是的,HierarchicalDataSource就是嵌套的普通數據源的實現。換句話說,每個「節點」是數據源的一個實例。

Kendo API Doc

沒有一噸的HierarchicalDataSource是如何工作的文件;我個人不得不在源代碼中弄亂很多,以便處理它。劍道只使用它作爲樹形視圖,它似乎是專門爲它構建的。但是,通過改變傳遞給它的Node模型,您可以或多或少地獲得它的行爲。

您不能僅將此數據源與任何小部件一起使用,小部件需要在內部支持它。我個人不得不創建自己的listview實現來處理它,因爲我想要嵌套的CRUD。

0

這是一個簡單的listview實現,涵蓋了一個嵌套模板。雖然不完美,但它似乎是管理這一挑戰的最簡單方法。我還建議這個問題不明確。我正在努力回答我認爲的障礙。

// Parent ListView 
<div id="parent-listview"></div> 

// Parent template 
<script id="parent-template" type="text/x-kendo-template"> 
    <a>#=ParentDescription#</a> 

    // Child ListView 
    <div id="child-listview-#=Id#"></div> 
</script> 

// Child template 
<script id="child-template" type="text/x-kendo-template"> 
    <a>#=ChildDescription#</a> 
</script> 

// Bind Parent 
$("#parent-listview").kendoListView(
{ 
    template: $("#parent-template").html(), 
    data : parentData 
    dataBound: function(e) { 

     // Bind children 
     $.each(this.dataItems(), function(idx, item) { 
      bindChildListView(item); 
     }) 
    } 
}); 

// Bind each child item 
function bindChildListView(data) { 

    $("#child-listview-" + Id).kendoListView({ 
     template: $("#child-template").html(), 
     dataSource: data.ChildItems 
    }) 
} 

注意我有一個名爲標識一個簡單的整型屬性上我的數據對象,但如果你需要或別的東西,你可以使用該行的UID。