Kendo Grid中的服务器端分页?
Posted
技术标签:
【中文标题】Kendo Grid中的服务器端分页?【英文标题】:Server Side Paging in Kendo Grid? 【发布时间】:2014-02-18 06:12:43 【问题描述】:我想在 Kendo Grid 中进行客户端网格分页。在网格中,只有前 50 或 100 个数据将显示在第一页中。当客户点击下一页时,将显示其他 50 或 100 条数据。我不想从我的服务器获取所有数据。因为数据库中会有数百万个数据,客户不想等待服务从服务器获取所有数据。当他/她点击下一页时,其他数据应该从服务器请求。我该怎么做?
我的控制器
[HttpGet]
public JsonResult Getdata()
var reports = db.ActivityLog.OrderBy(c => c.dateTime).ToList();
var collection = reports.Select(x => new
username = x.uName,
location = x.locName,
devices = x.devName
);
return Json(collection, JsonRequestBehavior.AllowGet);
我的看法 函数handleDataFromServer()
$("#grid").data("kendoGrid").dataSource.read();
window.setInterval("handleDataFromServer()", 10000);
$(document).ready(function ()
$("#grid").kendoGrid(
sortable: true,
pageable:
input: true,
numeric: false
,
selectable: "multiple",
dataSource:
transport:
read: "/Home/Getdata",
type: "json"
,
columns: [
field: "username", width: "80px" ,
field: "location", width: "80px" ,
field: "devices", width: "80px" ]
);
);
【问题讨论】:
【参考方案1】:在剑道中,您可以轻松做到这一点。你只需要打开 serverPaging: true 。但据我所知,true 是默认值。反正需要在dataSource里面声明如下。
dataSource:
transport: ,
pageSize: 50,
serverPaging: true,
,
pageable:
refresh: true,
pageSizes: [25, 50, 100]
如果每个新页面请求的 serverPaging 为真,Kendo 将根据您的服务器获取逻辑向服务器发送请求以获取下一个批次。让我知道这是否有帮助。
【讨论】:
【参考方案2】:另请参阅此 github 项目 KendoGridBinderEx,它也可作为 NuGet 包使用。
演示可以在here找到。
【讨论】:
【参考方案3】:请阅读这篇文章,这篇文章用正确的代码和解释解释了服务器端分页、排序和其他选项。
http://blog.longle.net/2012/04/13/teleriks-html5-kendo-ui-grid-with-server-side-paging-sorting-filtering-with-mvc3-ef4-dynamic-linq/
希望这会有所帮助。
【讨论】:
skydrive 链接已断开。以上是关于Kendo Grid中的服务器端分页?的主要内容,如果未能解决你的问题,请参考以下文章
使用 WebAPI 对 ng-grid 进行服务器端分页+过滤+排序
ag-grid-community:服务器端分页的无限行模型,社区免费版 agGrid - 不像服务器端分页那样工作