2013-05-03 2 views

답변

3

부분보기.

키는 바인딩되어야하는 데이터가 들어있는 "마스터"그리드의 현재 행을 제공하는 DetailTemplate에서 사용할 수있는 "항목"변수 (필자가 알 수있는 한, 문서화되지 않은) "항목"변수 인 것 같습니다. 나는입니다 필요

@model IEnumerable<Kendo.Mvc.Examples.Models.Employee> 

@{ Html.Kendo().Grid(Model) 
    .Name("Employees") 
    .Columns(columns => 
    { 
     columns.Bound(e => e.FirstName).Width(140); 
     columns.Bound(e => e.LastName).Width(140); 
     columns.Bound(e => e.Title).Width(200); 
     columns.Bound(e => e.Country).Width(200); 
     columns.Bound(e => e.City); 
    }) 
    .DetailTemplate(
     @<text>   
      @(Html.Kendo().Grid(item.Orders) 
        .Name("Orders_" + item.EmployeeID) 
        .Columns(columns => 
        { 
         columns.Bound(o => o.OrderID).Width(101); 
         columns.Bound(o => o.ShipCountry).Width(140); 
         columns.Bound(o => o.ShipAddress).Width(200); 
         columns.Bound(o => o.ShipName).Width(200); 
         columns.Bound(o => o.ShippedDate).Format("{0:d}"); 
        }) 
        .DataSource(dataSource => dataSource.Server())      
        .Pageable() 
        .Sortable() 
        .Filterable() 
      ) 
     </text> 
    ) 
    .RowAction(row => 
    { 
     if (row.Index == 0) 
     { 
      row.DetailRow.Expanded = true; 
     } 
     else 
     { 
      var requestKeys = Request.QueryString.Keys.Cast<string>(); 
      var expanded = requestKeys.Any(key => key.StartsWith("Orders_" + row.DataItem.EmployeeID) || 
       key.StartsWith("OrderDetails_" + row.DataItem.EmployeeID)); 
      row.DetailRow.Expanded = expanded; 
     } 
    }) 
    .Pageable() 
    .DataSource(dataSource => dataSource.Server().PageSize(5))  
    .Sortable() 
    .Render(); 
} 
+0

코드가 도움이되었습니다. 감사합니다. 그러나 정렬, 필터링 등을하는 동안 오류가 발생합니다. – ary

0

에 액션을 호출 이미 계층 구조의 예에서 데이터를 가지고있는 "모델"이후 템플릿의 데이터 소스를 설정하는 방법 그리드 코드, 주문 모델로 모델과 검도 그리드 코드를 작성 부분 뷰를 호출하고이 부분보기에 그것을 주문을

<script id="template" type="text/kendo-tmpl"> 
@Html.Partial("_Orders",Model.Order) 
</script> 

을 모델을 통과

나는 꽤 오랫동안이 일 고투 결국이 바인딩 서버를 사용하여 수행 할 수 있다는 것을 알게

@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.OrderViewModel>() 
      .Name("grid_#=EmployeeID#") 
      .Columns(columns => 
      { 
       columns.Bound(o => o.OrderID).Width(70); 
       columns.Bound(o => o.ShipCountry).Width(110); 
       columns.Bound(o => o.ShipAddress); 
       columns.Bound(o => o.ShipName).Width(200); 
      }) 
      .DataSource(dataSource => dataSource 
       .Ajax() 
       .PageSize(5) 
       .Read(read => read.Action("HierarchyBinding_Orders", "Grid", new { employeeID = "#=EmployeeID#" })) 
      ) 
      .Pageable() 
      .Sortable() 
      .ToClientTemplate() 
    ) 
+0

안녕, 같은 엔티티 qith 다른 격자를 생성 한 후 Model.Order을 보내고 이유 : 세부 그리드 (귀하의 경우 "세부 사항")에

여기 검도에서 ServerHierarchy 샘플입니다 두 번째 그리드에서 "주문"내 세부 정보. 세부 정보 목록을이보기로 보내려면 어떻게해야합니까? – Maldonel

+0

@maldoxd 이것은 단지 자세한 내용입니다. 중첩 된 그리드 예제를 보여 줬습니다. "세부 정보"를 클릭하면 세부 정보의 다른 표가 표시됩니다. 세부 사항에서 그리드를 원하지 않는 경우 세부 정보를 원하는대로 디자인하십시오. – HaBo