用flexigrid实现分页显示 一

基本思路:

1. flexigird只在页面端显示数据,仅此而已

2. JavaScript业务代码负责调用REST API获得数据,然后操纵flexigrid显示数据。

特别是负责操控page bar,也就是flexigrid表格下方的哪个页面导航条进行中/英文支持,每个按钮的点击事件等。

3. REST API无状态,因此通过接收一些参数来计算返回的数据:

a. 查询条件 //根据不同的业务有所变化

b. pageSize //每页记录数目

c. pageIndex //期望返回的页面编号

返回的结果包括了:

a. 某页数据的JSON格式表示

b. 查询条件

c. 最大记录数

d. 最大页面数


先看个最后完成的效果图:




下面分步骤简述:

1. REST API的实现

REST API由于不记录状态,每次都是通过参数来得知要获取什么页面的数据。这个算法很多,有基于数据库自己提供的功能的,有纯粹在内存中计算的,我用的是先查询符合条件的记录总数,再分页,然后读取指定页的记录。

这到不是重点,关键是返回的数据格式JSON不按照flexigrid的要求,而是根据业务要求生成。之后页面端会有JavaScript代码将其转换成flexigrid格式。REST API返回的格式举例如下面的结果:

{
"sign_page":{
"max_sign_count":50,
"page_index":1,
"group_id":"",
"max_page_count":4,
"signs":{
"displays":[
{
"index":"0",
"value":{
"id":"51fe01dbe4b0f241088d3b4e",
"userId":"4ee175ff82bc6273d0d4672f",
"address":"000000000001",
"groupName":"ok67",
"location":"function test",
"description":"",
"status":"offline"
}
},
{
"index":"1",
"value":{
"id":"51fe01dbe4b0f241088d3b4f",
"userId":"4ee175ff82bc6273d0d4672f",
"address":"000000000002",
"groupName":"ok67",
"location":"function test",
"description":"",
"status":"offline"
}
},
{
"index":"2",
"value":{
"id":"51fe01dbe4b0f241088d3b50",
"userId":"4ee175ff82bc6273d0d4672f",
"address":"000000000003",
"groupName":"ok67",
"location":"function test",
"description":"",
"status":"offline"
}
},
{
"index":"3",
"value":{
"id":"51fe01dbe4b0f241088d3b51",
"userId":"4ee175ff82bc6273d0d4672f",
"address":"000000000004",
"groupName":"ok67",
"location":"function test",
"description":"",
"status":"offline"
}
},
{
"index":"4",
"value":{
"id":"51fe01dbe4b0f241088d3b52",
"userId":"4ee175ff82bc6273d0d4672f",
"address":"000000000005",
"groupName":"ok67",
"location":"function test",
"description":"",
"status":"offline"
}
},
{
"index":"5",
"value":{
"id":"51fe01dbe4b0f241088d3b53",
"userId":"4ee175ff82bc6273d0d4672f",
"address":"000000000006",
"groupName":"ok67",
"location":"function test",
"description":"",
"status":"offline"
}
},
{
"index":"6",
"value":{
"id":"51fe01dbe4b0f241088d3b54",
"userId":"4ee175ff82bc6273d0d4672f",
"address":"000000000007",
"groupName":"ok67",
"location":"function test",
"description":"",
"status":"offline"
}
},
{
"index":"7",
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值