2012-06-27 28 views
1

我正在使用Kendo UI Grid来显示我的结果。我正在使用asp.net mvc helper扩展方法来创建具有自定义绑定的网格,以实现分页,如文档中所述(http://www.kendoui.c​​om/documentation/asp-net-mvc/helpers/grid /custom-binding.aspx)。我的结果数据可以分为5个不同的组(Group1Id,Group2Id ...)。我需要使用这些组ID来分组结果。任何人都可以告诉我如何实现groupBy。在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)的服务器。当我启用它们时,该组不起作用。我想这个分组必须在控制器中完成,但我不知道该怎么做。 –

+0

是的,你是正确的与自定义绑定分组是在控制器中完成。我改变了我的答案,以表明我认为这应该完成。 – Daniel

+0

我在服务器端完成分组。我需要在客户端展示他们。我只是不知道如何展示他们,例如显示groupby专栏。我希望我的团体名称和价值可以像这里的示例一样显示(http://demos.kendoui.c​​om/web/grid/aggregates.html)。 –