2013-10-31 6 views
1

검도 UI는 중첩 된 데이터 소스를 지원합니까? 중첩 테이블을 가질 열이 필요한 테이블이 있습니다. 나도 json을 사용하지 않는다. 내가 찾은 거의 모든 문서에서 중첩 된 데이터 소스는 지원되지만 json을 사용한다고 명시되어 있습니다. 누군가가 이것을 구현하는 방법의 예를 제시 할 수 있다면, 매우 도움이 될 것입니다.검도 UI의 중첩 데이터 소스

답변

1

짧은 답변 : 예, HierarchicalDataSource는 중첩되는 일반 데이터 소스를 무시한 것입니다. 다시 말해 각 "노드"는 데이터 소스의 인스턴스입니다.

Kendo API Doc

HierarchicalDataSource의 작동 방식의 문서의 톤이 아니다; 나는 개인적으로 소스 코드에서 핸들을 얻기 위해 많은 것을 엉망으로 다루어야했다. 검도는 treeview 용으로 만 사용하며 특별히 제작 된 것 같습니다. 그러나 전달 된 Node 모델을 변경하여 원하는대로 작동하게 만들 수도 있습니다.

위젯과 함께이 데이터 소스를 사용할 수 없으며 위젯은 내부적으로 지원해야합니다. 나는 개인적으로 CRUD를 중첩하기를 원했기 때문에 내 자신의 listview 구현을 만들어야 만했다.

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 
    }) 
} 

참고은 내 데이터 객체에 아이디라는 간단한 INT 속성이 있지만 다른 또는 뭔가해야하는 경우 행의 UID를 사용할 수 있습니다.

관련 문제