2013-07-09 4 views
0

검도 UI 트리보기 첫 항목과 첫 번째 항목을 확장하고 싶습니다. 데이터뱅크에 코드를 작성했습니다.kendo ui treeview 첫 번째 항목과 그 하위 항목 첫 번째 항목을 확장하는 방법

$("#treeview").data("kendoTreeview").expand("li:first"); 
$("#treeview").data("kendoTreeview").expand("li:first").children(".k-group"); 

첫 번째 항목 만 확장 중입니다. 펼쳐진 항목의 첫 번째 하위 항목이 아닙니다. 당신이 수요에 데이터를로드하면 내가 검도 UI에서이 작업을 수행 할 수있는 방법

+0

당신은'loadOnDemand'를 사용하고, 그것은 아들로드를 시작하고 아들이로드 될 때에 만 확장 할 수 있습니다 때입니다 그것은 그랜드 아이들을 얻는 것입니다. – OnaBai

+0

@OnaBai 예 loadondemand를 사용하고 있습니다. 요청시로드를 사용하고 요청시로드를 사용하지 않을 때 어떻게해야합니까? – Jonathan

답변

0
$("#treeview").data("kendoTreeView").expand("li:first"); // expands first child 
$("#treeview").data("kendoTreeView").expand("li:first li:first"); // expands first child or the first child 
+0

작동하지 않습니다. – Jonathan

0

는 (데이터 지금 나무

if(counter > 0) { 
$("#treeview").data("kendoTreeView").expand('.k-item:first'); 
$("#treeview").data("kendoTreeView").expand('.k-item:first .k-item:first'); 
counter = counter - 1; 
} 
0

의 바운드 이벤트를 전역 변수

var counter = 2; 

를 선언 등. 경유를 AJAX 호출), 문제는 두 번째 노드 (첫 번째 자식의 첫 번째 자식) 은 다음 행이 실행될 때이 존재하지 않는다는 것입니다.

$("#treeview").data("kendoTreeView").expand("li:fist li:first") 

이렇게하려면 첫 번째 expand() 실행이 끝난 직후에 해당 줄을 실행해야합니다. 의 setTimeout을 사용하여 (추한 방법)

광고 1

var yourTreeSelector = "#youTreeId"; 
var $tree = $(yourTreeSelector); 
var treeView = $tree.data("kendoTreeView"); 

var $firstItem = $tree.find(' > ul > li.k-item:first'); 

console.log($firstItem); 
//make sure selector is ok and first item exists 
if($firstItem.length){ 
    treeView.expand($firstItem); //expand first item 
    var secondSelectedFlag = false; //init flag to false 

    //handler method 
    selectSecond = function(){ 
     var $fistChildOfFirstItem = $firstItem.find(' > ul > li.k-item:first'); 
     console.log($fistChildOfFirstItem); 
     //make sure expand will execute only when node exists and was not expanded earlier 
     if(!secondSelectedFlag && $fistChildOfFirstItem.length){ 
      secondSelectedFlag = true; 

      treeView.expand($fistChildOfFirstItem);//expand on selected node 
      treeView.unbind("dataBound");//unbind method 
     } 
    } 

    treeView.bind("dataBound", selectSecond);//bind a handler method to dataBound event 
} 

광고를 kendoTree 이벤트

  • 를 사용하여

    1. :

      나는 두 가지 옵션 참조 2. 확장 후 첫 번째 노드 장소 다음 코드, 즉 상위를 확장 할 때부터 그렇게 쉬운 일이 아닙니다 그렇다면

      setTimeout(
          function(){ 
           var $fistChildOfFirstItem = $firstItem.find(' > ul > li.k-item:first'); 
           console.log($fistChildOfFirstItem); 
           treeView.expand($fistChildOfFirstItem); 
          }, 
          3000 //3 seconds is reasonable amount of time 
      );