Ext-js 4.2.1... Grid 分页调用action

Grid要实现分页,首先要向后台action传值,Ext 分页时主要向后台传值有3个:limit,page和start,

limit:每页显示记录条数;page:第几页(从1开始);start:每页第一条记录的序号(从0开始,例如:第一页的第一条记录序号为0)。

首先定义一个Model类

1
2
3
4
5
6
7
8
9
Ext.onReady(function(){
           Ext.define(‘Student‘, {
               extend: ‘Ext.data.Model‘,
               fields: [
                   {name: ‘id‘,type: ‘int‘},
                   {name: ‘username‘, type: ‘string‘},
                   {name: ‘age‘, type: ‘string‘}
                ]
           });

 定义并实例化一个Store类,调用后台action取数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var getLocalStore = Ext.create(‘Ext.data.ArrayStore‘, {
                    model: ‘Student‘,
                    pageSize: 10,
                    autoLoad: {start: 0, limit: 10},
                    proxy : { 
                        type : ‘ajax‘
                        url : ‘list.action‘,//获取数据的url 
                        method : ‘POST‘
                        reader : { 
                            type : ‘json‘
                            root : ‘datas‘,
                            totalProperty : ‘total‘
                        
                    }
                });

 注意:reader : { 
                    type : ‘json‘, 
                    root : ‘datas‘,
                    totalProperty : ‘total‘
                } 

其中 type:‘json‘表示从后台取到的数据类型为json类型的;root:‘datas‘表示表单中具体要现实的记录(字符串表示的值要与action中List相对应);totalProperty:‘total‘表示总的记录数。

然后就是创建Grid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var grid = Ext.create(‘Ext.grid.Panel‘, {
                store: getLocalStore,
                columns: [
                    Ext.create(‘Ext.grid.RowNumberer‘),
                    {text: "ID", flex: 1, sortable: true, dataIndex: ‘id‘},
                    {text: "Name", width: 200, sortable: true, dataIndex: ‘username‘},
                    {text: "Age", width: 200, sortable: true, dataIndex: ‘age‘}
                ],
                columnLines: true,
                width:600,
                height:300,
                selType: ‘checkboxmodel‘,
                frame: true,
                title:‘Grid with Numbered Rows‘,
                iconCls:‘icon-grid‘,
                margin: ‘0 0 20 0‘,
                dockedItems: [{
                         xtype: ‘pagingtoolbar‘,
                         store: getLocalStore,  
                         dock: ‘bottom‘,
                         displayInfo: true
                 }],
                renderTo: Ext.getBody()
           });

 Ext.create(‘Ext.grid.RowNumberer‘)显示行号。

注意:这里需要两次使用到getLocalStore,也就是上面的Store类。

分页部分dockedItems: [{
             xtype: ‘pagingtoolbar‘,
             store: getLocalStore,  
             dock: ‘bottom‘,
             displayInfo: true
     }],也要使用。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。