2017-04-21 49 views
1

이것은 현재 그리드 및 detailExpand/Databind입니다. 당신은 데이터 바인딩이 시작된 후 uid를 얻고 그 행을 확장하려고 시도 할 것입니다. expandedRowUid 콘솔 로그는 정의되지 않았습니다. 누군가가 내가 uid를 올바르게 얻거나 대체 솔루션을 제공하여 데이터 바인드가 트리거되면 세부 그리드가 축소되지 않거나 데이터 바인딩 후에 다시 확장되도록 도와 줄 수 있습니까?데이터 바인딩 후 켄도 디테일 그리드 유지

function teacherHierarchyGrid() { 
     $("#teacherGrid").kendoGrid({ 
      detailInit: detailInit, 
      selectable: true, 
      dataBound: function() { 
      console.log("Bind occured") 
      this.expandRow($('tr[data-uid=' + expandedRowUid + ']')); 
      }, 
      detailExpand: function (e) 
      expandedRowUid = e.masterRow.data('uid'); 
      console.log(expandedRowUid) 
     }, 
    }) 
    } 

** 편집 ** 새로운 코드는 여전히 작동하지

var expandedRow; 
    function teacherHierarchyGrid() { 
     $("#teacherGrid").kendoGrid({ 
      detailInit: detailInit, 
      selectable: true, 
      autoBind: false, 
      dataBound: function(e){ 
       if (expandedRow) { 
        console.log(expandedRow); 
        e.sender.expandRow($('tr[data-uid=' + expandedRow + ']')); 
      } 
      }, 
      detailExpand: function (e) { 
       expandedRow = e.sender.dataItem(e.masterRow).uid; 
      }, 
     }) 
    } 
+0

모든 세부 행을 자동으로 확장 하시겠습니까? 그렇다면 [이 링크를 확인하십시오] (http://www.telerik.com/forums/how-to-auto-expand-all-detail-rows-in-a-kendo-grid-#Y7UlVX19GE2_ZUsfXFr8kg) – Sandman

답변

0

첫째는 detailExpand 기능에} {의 부족으로 인해 정의되지 않은 기록 할 수 다음에

detailExpand: function (e) { 
      expandedRowUid = e.masterRow.data('uid'); 
      console.log(expandedRowUid); 
      } 

두 번째 dataBound 함수는 세미콜론 뒤에 누락되었습니다. console.log("Bind occured")

세 번째로 아마도 uid a 행을 ssociated 후 행 동일하지 않습니다 : databound 후 동일한 행이 위젯에 의해 생성 된 이후 다른 uid있을 수 있습니다. throughT 데이터 항목 ID를 확장하려면 행을 참조하십시오.

+0

아직 확장되지 않음 행. dataBind 이벤트가 두 번 발생 했으므로 autoBind false로 설정했는지 확인했습니다. 내 현재 코드를 위에 게시했습니다 –

+0

실수로 사과드립니다. 세 번째 요점은 사실이 아니며,이 키워드를 통해 실제로 격자 위젯을 선택합니다. 문제는 당신이 행을 다시 만든 후에 uid가 아마 동일하지 않다는 것입니다 : databound 후에 같은 행에 다른 uid가있을 수 있습니다. throughT 데이터 항목 ID를 확장하려면 행을 참조하십시오. 코드를 제공하면 데이터 소스를 정의하고 추가로 도움을받을 수 있습니다. –