jQuery easyUI分页的实现

jQuery easyUI分页的实现(简单的例子)
这里写图片描述

前端—–页面核心代码:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />


------------------------------------------------------------


<body style="background-color: #E1ECFF">
    <table id="dg" class="easyui-datagrid"></table>
</body>


------------------------------------------------------------

$(function(){
    $('#dg').datagrid({
        url:'${ctx }/account/datagrid.do',    
        singleSelect:true,
        collapsible:true,//收起表格的内容
        width: 700,
        height: 450,
        loadMsg: '数据加载中...',
        singleSelect:true,
        fitColumns:true,
        rownumbers: true,//显示行数
        pagination:true,//显示分页
        pageSize:10,
        pageNumber:1,
        pageList:[10,20,30,40,50],
        frozenColumns: [[    
            { title: '区域名称', field: 'regionname', width: 80, sortable: false,align:'center'}    
         ]], 
           columns:[[      
               {field:'',title:'账目计算表',colspan:6,align:'center',height:30}      
            ],[
            {field:'itemid',title:'部门名称',rowspan:2,align:'center'}, 
            {field:'',title:'统计各部门的账目总和:50亿美元',colspan:5,align:'right'}
            ],[
            {field:'productid',title:'目录',width:100,align:'center'}, 
            {field:'listprice',title:'部门一',width:100,align:'center'}, 
            {field:'unitcost',title:'部门二',width:100,align:'center'}, 
            {field:'attr1',title:'部门三',width:100,align:'center'}, 
            {field:'status',title:'部门四',width:100,align:'center'}
        ]]
    }); 
    $('#dg').datagrid('getPager').pagination({
        beforePageText:'',
        afterPageText:'/{pages}',
        displayMsg:'{from}-{to} 共{total}条',
        showPageList:true,
        showRefresh:true,
        onBeforeRefresh:function(pageNumber, pageSize){ 
            $(this).pagination('loading');
            $(this).pagination('loaded'); 
        }
    });
});

后端代码,我用的是springMVC写的,不管是什么框架,只要将最重要的两个参数获取到即可,datagrid在请求的时候会将他们的当成参数进行传递后台,所以不需要在请求路径中添加参数请求。如上面的例子url:'${ctx }/account/datagrid.do,就不需要这样写成url:'${ctx }/account/datagrid.do?pageNumber=1&&pageSize=20',直接请求;在将json数据返回就行了。

//获取页数
int pageNumber = Integer.parseInt(request.getParameter(“page”));
//获取每页显示数
int pageSize = Integer.parseInt(request.getParameter(“rows”));

核心代码:

@Controller
@RequestMapping("/account")
public class AccountController {

    @RequestMapping("/datagrid.do")
    @ResponseBody
    public DataGrid dataGrid() throws Exception{
        HttpServletRequest request = ((ServletRequestAttributes)
                RequestContextHolder.getRequestAttributes()).getRequest(); 
        //获取页数
        int pageNumber = Integer.parseInt(request.getParameter("page"));
        //获取每页显示数
        int pageSize = Integer.parseInt(request.getParameter("rows"));

        System.out.println(pageNumber+","+pageSize);
        //所有的数据集合
        List<Map<String,String>> results = new ArrayList<Map<String,String>>();
        Map<String,String> map = null;
        DataGrid dg = new DataGrid();
        //模拟的40条数据
        for (int i = 0; i < 40; i++) {
            map = new HashMap<String, String>();
            map.put("regionname", "123");
            map.put("itemid", "123");
            map.put("productid", "123");
            map.put("listprice", "123");
            map.put("unitcost", "123");
            map.put("attr1", "123");
            map.put("status", "123");

            results.add(map);
        }
        //返回到页面的数据集合
        List<Map<String,String>> result = new ArrayList<Map<String,String>>();

        for (int i = (pageNumber-1)*pageSize; i < pageNumber*pageSize&&i<results.size(); i++) {
            result.add(results.get(i));
        }
        dg.setRows(result);
        dg.setTotal(results.size());

        return dg;
    }
}

DataGrid实体类:

public class DataGrid {

    private int page = 1 ;// 当前页
    private List<Map<String,String>> rows;// 结果集
    private int pageSize = 10;//每页显示的数据的条数
    private int total;// 总记录数


    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public int getPage() {
        return page;
    }
    public void setPage(int page) {
        this.page = page;
    }
    public List<Map<String, String>> getRows() {
        return rows;
    }
    public void setRows(List<Map<String, String>> rows) {
        this.rows = rows;
    }
    public int getTotal() {
        return total;
    }
    public void setTotal(int total) {
        this.total = total;
    }

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值