ExtJS的分页

ExtJS的分页其实是和其他的分页一样的。

首先我们在数据库中使用sql语句先进行一定的分页操作。

示例代码:

declare @limit int
declare @start int  
select top (@limit) * from tb_BaseCustomerList
where CusID not in (
	select top (@start) CusID from tb_BaseCustomerList
     )

这里我们在后台写好分页之后,则需要将ExtJS中的start和limit两个参数传递进去。

首先看一下前台页面上的ExtJS是怎么在Grid表格中添加分页控件的。

示例代码:

 var CustlistGrid = Ext.create("Ext.grid.Panel", {
        id: "CustlistGrid",
        store: storeCustGrid,
        columns: [{
            text: "序号",
            xtype: "rownumberer",
            width: 100,
            align: "center",
            locked: true
        }, {
            text: "客户全称",
            width: 230,
            align: "center",
            dataIndex: "CusFullName",
            locked: true
        }, {
            text: "状态",
            width: 100,
            dataIndex: "CusState",
            align: "center"
        }, {
            text: "公司地址",
            width: 230,
            dataIndex: "CompanyAddress",
            align: "center"
        }],
        dockedItems: [{
            xtype: "pagingtoolbar",
            store: storeCustGrid,
            dock: "bottom",
            displayInfo: true
        }]
    });
在这里我们有必要解释一下dockedItems中的各项配置的作用:

xtype--配置了此项为分页控件。样式如下图所示:

里面包含了各类与分页相关的信息。

store--此配置项是一个数据源(同表格绑定的store是同一个数据源)

dock--是指停靠位置。

displayInfo--是否显示下图中画红色圈内的信息。

这里我们介绍了如何将分页控件显示在Grid表中。接下来就是数据源的配置了

示例代码:

function CreateCustlistStore() {
    var itemsPerPage = 2;
    var custlistStore = Ext.create("Ext.data.Store", {
        autoLoad: { start: 0, limit: itemsPerPage },
        storeId: "storeCustGrid",
        model: "CustGridModel",
        pageSize: itemsPerPage,
        proxy: {
            type: "ajax",
            url: "GetCustlist",
            reader: {
                type: "json",
                root: "rows",
                totalProperty: "totals",
            }
        }
    });
    return custlistStore;
}
首先我们来介绍一下分页中两个重点配置项:start和limit

start代表的是要显示的页码上面的第一个条目在总条目中的index(也就是排第几个,起始是0),例如:当store第一次load的时候,start=0,limit=10,当点击翻页的时候store进行load,此时start=start+limit,那么第二也start=10.

而limit就是每页要显示的条目数量。

这里需要注意的是start和limit是第一请求时向后台传递的数据。如果你不赋值,则在第一次请求时后台取到的start和limit均为null

当所有的配置都完成之后。我们还需要注意这里从后台传递过来的JSON格式数据不能是数组。也就是说不能是这种格式的


[{"totals":30},"rows":[{"name","xiaocainiao"},{"age":"20"}]}]

而是需要将最外围的中括号([])给去掉。写成这样的形式:

{"totals":30},"rows":[{"name","xiaocainiao"},{"age":"20"}]}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值