2014-01-06 4 views
4

로컬 데이터를 사용하여 바인딩하는 검도 트리가 있습니다.검도 UI TreeView 사용자 정의 속성

모든 코드가 제대로 작동합니다.

그러나 생성 된 항목에 사용자 지정 특성을 추가하려고합니다 (예 : data-name).

kendo.data.HierarchicalDataSource을 사용하면 어떻게 할 수 있습니까?

// bind kendo tree 
var treeDataSource = new kendo.data.HierarchicalDataSource({ 
    data: [{ Id: "id", Text: "Node 1", HasChildren: false, ChildrenFolders: [], HtmlAttributes: { "data-name": "Custom Name" } }], 
    schema: { 
     model: { 
      children: "ChildrenFolders", 
      hasChildren: "HasChildren", 
      id: "Id", 
      htmlAttributes: "HtmlAttributes" 
     } 
    } 
}); 

this.kendoTreeView = $("#tree").kendoTreeView({ 
    dataSource: treeDataSource, 
    dataTextField: "Text", 
    loadOnDemand: false 
}).data("kendoTreeView"); 

답변

3

당신은 불행하게도 전체 _template 방법을 대체하는 의미 트 리뷰 위젯에서 항목 템플릿을 대체해야 할 것이다. DOM 구조를 수동으로 작성하는 것이 좋습니다 (here). 그런 식으로 트리 뷰를 초기화하기 전에 속성을 설정할 수 있습니다. 또 다른 옵션은 treeview의 template 옵션을 사용하는 것입니다 (이 경우 하위 요소의 속성 만 추가 할 수 있습니다).

+0

하나를 수동으로 DOM을 만드는 낙담 – scniro

0

당신은 방법은 매개 변수로 jQuery를 선택 소요)있는 DataItem을 (사용은 dataSource 항목 속성을 얻을 수 있습니다 :

var treeview = $("#treeview").kendoTreeView({ 
         animation: false, 
         dataSource: dataSource, 
         select: function (e) { 
          var dataitem = treeview.dataItem("#treeview_tv_active"); 
          //dataitem.HtmlAttributes 
         } 
        }).data("kendoTreeView"); 
+2

코드에만 답변을 지적 해 주셔서 감사합니다. 이 솔루션이 왜 효과가 있는지 설명하기 위해 몇 줄을 추가하십시오. – parakmiakos

관련 문제