Kendo ui 剑道网格排序、分组功能

Kendo ui 剑道网格排序、分组功能,kendo-ui,kendo-grid,kendo-asp.net-mvc,kendo-mobile,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,Kendo Mobile,剑道排序、分组是客户端还是服务器端?如果一次获取所有记录或部分加载数据,它是如何工作的。我尝试过验证,但无法得出结论,您可以在客户端或服务器端进行验证 对于服务器端(即部分加载的数据): 对于客户端(即一次获取所有数据): 定制服务器端-例如,您的网格数据没有IQueryable模型: 如果您想进行客户端绑定(AJAX)绑定,它将检索所需部分中的数据,只需确保不要将.ServerFiltering(false)(和其他类似方法)放入数据源配置中即可 另外,在控制器中,在返回数据时使用.ToD

剑道排序、分组是客户端还是服务器端?如果一次获取所有记录或部分加载数据,它是如何工作的。我尝试过验证,但无法得出结论,您可以在客户端或服务器端进行验证

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

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

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


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

另外,在控制器中,在返回数据时使用
.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
数据源来正常工作,并将分页/排序/筛选操作延迟到数据库

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

正如所指出的,可以一次获取所有记录以执行客户端处理,但出于性能原因,在较大的数据集上,我建议每次从服务器获取一页结果中的数据

排序、筛选、分页和分组可以在服务器端执行,如中所述,它使用Telerik的
Kendo.Mvc
库和IQueryable服务器端数据源,如实体框架或Telerik数据访问


请记住,我的答案还使用了纯JavaScript Kendo数据源声明,而不是MVC包装器,因为在我第一次编写解决方案时,它为我提供了对所有数据源选项更好的粒度控制。从那时起,Telerik可能已经改进了包装器(请参阅Telerik的MVC方法或使用包装器的WebApi方法)。

您知道,在使用Ajax定制服务器端绑定时,您是被迫自己实现所有服务器端功能,还是可以自由地只实现其中的一部分?假设我想自己处理分组,但允许通过DataSourceRequest&DataSourceResult自动处理过滤和分页。我现在还不清楚定制绑定的文档。