Angular 6中如何使用自定义指令实现Kendo Grid服务端分页
Kendo Angular Grid 服务端分页非OData场景取值说明
这两个字段没有固定的标准关键字,完全由你自己的前后端接口约定定义,调整步骤如下:
1. 定义后端接口返回结构
你后端对接Oracle查询时,需要返回两类核心数据:当前分页的用户列表数组、符合查询条件的总记录数,你可以自定义返回的键名,示例结构如下:
{ "records": [ // 存储当前页用户列表的键,可自定义命名 {"name": "xxx", "address": "xxx", "email": "xxx", "mobile": "xxx"}, // 更多当前页数据 ], "total": 256 // 存储总条数的键,可自定义命名 }
2. 调整前端rebind方法取值
按照你和后端约定的键名,替换原有OData的固定字段即可,同时注意原代码只有map操作没有订阅Observable,会导致请求不触发,修改后示例代码如下:
public rebind(): void { this.apiService.GetUserDetails(this.loginUserId, this.state, this.totalRecords, this.searchedUserDetails) .subscribe(response => (<GridDataResult>{ data: response['records'], // 替换为你约定的列表字段名 total: parseInt(response['total'], 10) // 替换为你约定的总条数字段名 })); }
3. 配套后端逻辑调整
你需要同步修改后端接口逻辑适配服务端分页:
- 接收Kendo Grid
state参数中的skip(偏移量)、take(每页条数)参数,编写Oracle分页SQL查询当前页数据,Oracle 12c+可直接用OFFSET ? ROWS FETCH NEXT ? ROWS ONLY语法,低版本可通过ROWNUM嵌套实现分页。 - 额外执行一次无分页的COUNT查询,统计符合当前筛选条件的总记录数,和分页列表一起返回给前端即可。
内容的提问来源于stack exchange,提问作者CPK_2011
相关产品推荐
相关产品推荐

