Kendo Grid 中的服务器端分页?

问题描述 投票:0回答:3

我想要 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" }]
        });
    });
asp.net-mvc pagination kendo-grid client-side
3个回答
0
投票

在剑道中你可以轻松做到这一点。您只需将 serverPaging: true 即可。但据我所知 true 是默认值。无论如何,需要在 dataSource 中声明它,如下所示。

dataSource: {
    transport: {},
    pageSize: 50,
    serverPaging: true,        
},
pageable: {
    refresh: true,
    pageSizes: [25, 50, 100]
}

如果每个新页面请求的 serverPaging 为 true,Kendo 将根据您的服务器获取逻辑向服务器发送请求以获取下一批。让我知道这是否有帮助。


0
投票

另请参阅此 github 项目 KendoGridBinderEx,它也可以作为 NuGet 包提供。

可以在此处找到演示。


0
投票

按照这篇文章进行操作,该文章通过正确的代码和解释解释了服务器端分页、排序和其他选项。

http://blog.longle.net/2012/04/13/teleriks-html5-kendo-ui-grid-with-server-side-paging-sorting-filtering-with-mvc3-ef4-dynamic-linq/

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.