Kendo GRID排序,分组功能

时间:2015-03-14 13:07:50

标签: kendo-ui kendo-grid kendo-asp.net-mvc kendo-mobile

Kendo排序,分组客户端还是服务器端?如果一次获取所有记录或者将数据加载到各个部分中,它是如何工作的。我试过验证,但无法用答案结束

3 个答案:

答案 0 :(得分:0)

您可以在客户端或服务器端执行此操作。

对于服务器端(即部分加载的数据):

http://docs.telerik.com/kendo-ui/aspnet-mvc/helpers/grid/faq#how-do-i-implement-paging-sorting-filtering-and-grouping

对于客户端(即一次获取所有数据):

http://docs.telerik.com/kendo-ui/aspnet-mvc/helpers/grid/faq#how-can-i-configure-the-grid-to-perform-paging-sorting-filtering-and-grouping-in-memory

自定义服务器端 - 例如您没有网格数据的IQueryable模型:

http://docs.telerik.com/kendo-ui/aspnet-mvc/helpers/grid/custom-binding

答案 1 :(得分:0)

如果要进行客户端绑定(AJAX)绑定,它将以所需的部分检索数据,只需确保不在.ServerFiltering(false)中放置DataSource(和其他类似方法)配置。

此外,在您的控制器中,在返回数据时使用.ToDataSource()扩展方法,如下所示:

public ActionResult GetTasks([DataSourceRequest] DataSourceRequest request)
{
    var tasks = _db.Tasks; // however you want to get your data

    return Json(tasks.ToDataSourceResult(request), JsonRequestBehavior .AllowGet);
}

请注意,正如iandayman所提到的,您将要使用IQueryable<T>数据源才能正常工作,并将分页/排序/过滤操作推迟到数据库。

如果您想进行服务器端绑定,您也可以使用IQueryable数据源,并且还会将执行推迟到数据库。

答案 2 :(得分:0)

正如@iandayman所指出的那样,可以一次获取所有记录以执行客户端处理,但出于性能原因,我建议在一个页面中从服务器获取数据 - 结果一次。

排序,过滤,分页和分组可以在服务器端执行,如my answer here中所述,它使用来自Telerik的Kendo.Mvc库和IQueryable服务器端数据源,例如Entity Framework或Telerik数据访问。

请记住,我的答案还使用了纯JavaScript的Kendo DataSource声明,而不是MVC包装器,因为当我第一次编写解决方案时,它使我能够更好地控制所有DataSource选项。从那时起,Telerik可能已经改进了包装器(参见Telerik的MVC方法here或使用包装器here的WebApi方法)。