2012-06-27 3 views
1

Kendo UI Grid를 사용하여 결과를 표시하고 있습니다. asp.net mvc 도우미 확장 메서드를 사용하여 설명서에서 설명 된대로 페이징을 구현하기 위해 사용자 지정 바인딩이있는 표를 만듭니다 (http://www.kendoui.com/documentation/asp-net-mvc/helpers/grid). /custom-binding.aspx). 내 결과 데이터를 5 개의 다른 그룹 (Group1Id, Group2Id ...)으로 그룹화 할 수 있습니다. 이 그룹 ID를 사용하여 결과를 그룹화해야합니다. 누구든지 그룹 구현 방법을 알려 주실 수 있습니다. telerik 그리드 (webforms)에서는 GridGroupByExpression을 사용했습니다. 나는이 행동과 비슷한 것을 원할 것이다.MVC 도우미 확장을 사용하여 Kendo UI Grid에서 groupby 표현식을 구현하십시오.

.Group(groups => 
    { 
     groups.Add(p => p.Group1Id); 
     groups.Add(p => p.Group2Id); 
    } 

맞춤 바인딩에 작동하지 않았습니다. 그러나 서버 바인딩을 위해 작동합니다. 아직 Ajax 바인딩을 시도하지 않았습니다.

답변

1

그룹화는 사용자 지정 바인딩에 대해 정렬이 수행되는 방식과 유사하게 수행됩니다.

public ActionResult Index([DataSourceRequest]DataSourceRequest request) 
{ 
    IQueryable<Order> orders = new NorthwindDataContext().Orders; 

    //Apply grouping 
    foreach (GroupDescriptor groupDescriptor in request.Groups) 
    { 
    switch (groupDescriptor.Member) 
    { 
     case "Group1Id": 
     orders.GroupBy(s => s.Group1Id); 
     break; 
     case "Group2Id": 
     orders.GroupBy(s => s.Group2Id); 
     break; 
    } 
    } 

    return View(orders); 
} 
+0

그래,이 하나는 사용자 정의 바인딩없이 작동합니다. 앞에서 말했듯이, .EnableCustomBinding (true) 및 .BindTo (Model)를 사용하여 Server 대신 Custom Binding을 사용해야합니다. 사용하도록 설정하면 그룹이 작동하지 않습니다. 나는 그룹핑이 컨트롤러에서 이루어져야한다고 생각하지만, 어떻게해야할지 모르겠다. –

+0

예, 사용자 정의 바인딩이 올바르면 컨트롤러에서 그룹화가 완료됩니다. 이 일을 어떻게해야한다고 생각하는지 보여주는 답을 바꿨습니다. – Daniel

+0

그룹화가 서버 측에서 수행되었습니다. 나는 그들을 클라이언트 측에 보여줄 필요가있다. 나는 그 (것)들을 보여줄 방법, ie groupby 란을 보여줄 방법을 모른다. 내 그룹 이름과 값을이 예제처럼 여기에 표시하려고합니다 (http://demos.kendoui.com/web/grid/aggregates.html). –