2012-11-13 3 views
0

다른 Telerik Grid 내에 중첩 된 Telerik Grid가 있는데 상위 그리드가 확장 될 때마다 그 자체가 새로 고침되도록하고 싶습니다. 중첩 된 표 안의 데이터는 잠자 게 바뀔 수 있으므로 모든 확장 이벤트가 발생할 때마다 자체적으로 새로 고침하기 위해 중첩 된 표가 필요합니다. Telerik Grid MVC 새로 고침 DetailView 확장

내 Telerik 그리드

:

<div> 
@(Html.Telerik().Grid<RentableUnit>() 
     .Name("RentableUnits") 
     .Columns(columns => 
        { 
         columns.Bound(e => e.UnitID).Hidden(); 
         columns.Bound(e => e.Name).Width(800); 
         columns.Bound(e => e.IsExpanded).Hidden(); 
        }) 
     .ClientEvents(events => events.OnRowDataBound("employees_onRowDataBound") 
            .OnDetailViewExpand("unit_onDetailViewExpand") 
            .OnDetailViewCollapse("unit_onDetailViewCollapse") 
            .OnDetailViewExpand("toggleDetail") 
            ) 
     .DetailView(details => details.ClientTemplate(
      //stuff in template 
     ) 
.DataBinding(dataBinding => dataBinding.Ajax().Select("RentableUnits", "Home")) 
.Sortable() 
) 
</div> 

내 자바 스크립트 :

function unit_onDetailViewExpand(e) { 
    var mstRow = e.masterRow; 
    var unitNumber = mstRow.cells[1].innerHTML; 
    var grid = $(this).data('tGrid'); 
    grid.$rows().not(e.masterRow).each(function(index, row) { 
     grid.collapseRow(row); 
    }); 

    //I´ve been trying to force databinding on the grid row 
    grid.expandRow(e.row); 
    //I´ve been trying this among others but I´m missing something 
} 

사람이 gridrow이 바인딩 강제하는 방법에 대한 올바른 방향으로 날 포인트? 도움이 매우 많이 받아 들여지고 있습니다.

답변

1

이렇게하면 페이지의 모든 그리드를 다시 바인딩 할 수 있습니다. 세부 행 안에있는 Grid 만 새로 고치려면 DetailExpand 이벤트에서 다음 로직을 사용하여 Grid가 클라이언트 오브젝트를 가져오고 ajaxRequest 메소드를 사용할 수 있습니다.

function unit_onDetailViewExpand(e){ 
    $(e.detailRow).find('.t-grid').data().tGrid.ajaxRequest(); 
} 
+0

Thanx @XMR은 훨씬 간단한 방법이며이를 위해 find() 함수를 사용하는 것이 더 깔끔합니다. 나는 아직도 자바 스크립트 세계에서 내 길을 배우고있다;) – gardarvalur

0

나는이 질문을 게시 한 직후에 답변이 나에게 (어떤 이상한 이유로) 맞았다. 나는이 루프 그리드 새로 고침을 강제로 관리 :

 for (var i = 0; i < 6; i++) { 
     $('#' + i + 'UnitPeriod_' + unitNumber + ' .t-refresh').trigger('click'); 
    } 

나는 위의 루프이 줄 grid.expandRow (e.row)를 교체했다. 고맙습니다 어쨌든 :)