加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Angular-Kendo网格 – 服务器端分页

发布时间:2020-12-17 09:41:16 所属栏目:安全 来源:网络整理
导读:我需要在Angular-Kendo网格中实现服务器端分页.我无法从Angular方面清楚地了解如何做到这一点. 有人可以帮忙吗? 使用最新版本的Kendo UI (in Beta right now),还有另一种方法可以实现服务器端分页,使用Angular提供的$http.post方法和Kendo Grid读取功能. 这
我需要在Angular-Kendo网格中实现服务器端分页.我无法从Angular方面清楚地了解如何做到这一点.

有人可以帮忙吗?

使用最新版本的Kendo UI (in Beta right now),还有另一种方法可以实现服务器端分页,使用Angular提供的$http.post方法和Kendo Grid读取功能.

这是一个使用MVC 5控制器作为从数据源获取的数据的端点的示例.它通过将页面和pageSize发送到控制器来模拟服务器分页,如果需要,您也可以发送take和skip,并随意处理它.

HTML标记

<div ng-controller="MyCtrl">
    <kendo-grid k-options="mainGridOptions"></kendo-grid>
</div>

JavaScript的

function MyCtrl($scope,$http) {
    $scope.mainGridOptions = {
        dataSource: {
            schema: {
                data: "Data",total: "Total"
            },transport: {
                read: function (e) {//You can get the current page,pageSize etc off `e`.
                    var requestData = {
                        page: e.data.page,pageSize: e.data.pageSize,type: "hello"
                    };
                    console.log(e);
                    $http({ method: 'POST',url: 'Home/DataSourceResult',data: requestData }).
                    success(function (data,status,headers,config) {
                        e.success(data);
                        //console.log(data.Data);
                    }).
                    error(function (data,config) {
                        alert('something went wrong');
                        console.log(status);
                    });
                }
            },pageSize: 1,serverPaging: true,serverSorting: true
        },selectable: "row",pageable: true,sortable: true,groupable: true
    }
}

您可以在read:function(e){}声明中获取当前pageSize,page,take,skip以及更多关于参数e的内容.

由于post值引用read函数中的参数,因此每次在网格上更新页面时它们都会更新.这是您每次网格进行更改时可用于更新帖子值的内容.网格然后重新绑定自己.

Home / DataSourceResult控制器

[HttpPost]
    public ActionResult DataSourceResult(int page,string type,int pageSize)
    {
        ResponseData resultData = new ResponseData();
        string tempData = "";
        if (page == 1)
        {
            tempData = "[{"NAME": "Example Name 1","DESCRIPTION": "Example Description 1"},{"NAME": "Example Name 2","DESCRIPTION": null}]";
        }
        else if (page == 2)
        {
            tempData = "[{"NAME": "Example Name 3","DESCRIPTION": "Example Description 3"},{"NAME": "Example Name 4","DESCRIPTION": "Example Description 4"}]";
        }
        resultData.Data = tempData;
        resultData.Total = "4";
        string json = JsonConvert.SerializeObject(resultData);
        json = json.Replace(@"","");
        json = json.Replace(""[{","[{");
        json = json.Replace("}]"","}]");
        return Content(json,"application/json");
    }

非常基本,但正是我需要的,也可以帮助你.这使用了原生的Angular http.get功能,同时仍然允许Kendo Grid完成大部分繁重的工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读