easyui datagrid json分页实例

原文章地址1   原文章地址2

参考这两篇文章实现了自己的分页

jsp页面

<script type="text/javascript">
    $(function(jsonArray) {
        $('#TestDatagrid').datagrid({
            title : 'datagrid实例',
            iconCls : 'icon-ok',
            width : 600,
            pageSize : 5,//默认选择的分页是每页5行数据
            pageList : [ 5, 10, 15, 20 ],//可以选择的分页集合
            nowrap : true,//设置为true,当数据长度超出列宽时将会自动截取
            striped : true,//设置为true将交替显示行背景。
            collapsible : true,//显示可折叠按钮
            toolbar:"#tb",//在添加 增添、删除、修改操作的按钮要用到这个
            url:'partyList.action',//url调用Action方法
            method : 'get',
            loadMsg : '数据装载中......',
            singleSelect:true,//为true时只能选择单行
            fitColumns:true,//允许表格自动缩放,以适应父容器
            remoteSort : false,
            pagination : true,//分页
            rownumbers : true //行数
        })
    });
     
</script>
<table id="TestDatagrid" class="easyui-datagrid"
            data-options="toolbar:'#pmmtoolbar',border:false,singleSelect:true" >
         <thead>
                <tr>
                    <th data-options="field:'belongsBranch'">所属支部</th>
                    <th data-options="field:'joinDate'">入党日期</th>
                </tr>
            </thead>  
        </table>

action方法

import net.sf.json.JSONObject;

private String rows;// 每页显示的记录数
    private String page;// 当前第几页
    //private JSONArray jsonArray;
    private JSONObject jsonObj;

public JSONObject getJsonObj() {
        return jsonObj;
    }

    public void setJsonObj(JSONObject jsonObj) {
        this.jsonObj = jsonObj;
    }
    /**
     * 查询所有数据列表
     *
     * @return
     */
    public String list() {
        try {
             List<PartyMember> list = partyMemberService.getList(page, rows);
            // 转换为JSON
             Map<String, Object> jsonMap = new HashMap<String, Object>();// 定义map
             jsonMap.put("total",partyMemberService.getTotal());// total键 存放总记录数,必须的
             jsonMap.put("rows", list);// rows键 存放每页记录 list
//             JSONArray json = new JSONArray();
//             jsonArray=json.put(jsonMap);
//             System.out.println(jsonArray.length());
            
            jsonObj = JSONObject.fromObject(jsonMap);//格式化result
            // 一定要是JSONObject
            
            return SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ERROR;
        }
    }

dao方法

public interface PartyMemberDao {
    //分页
    public List getList(int currentpage,int pagesize) throws Exception;//根据第几页获取,每页几行获取数据
    public int getTotal() throws Exception;//统计一共有多少数据
}

daoimpl方法

//-----------------------分页-----------------------------
    @Override
    public List getList(final int currentpage, final int pagesize) throws Exception {
        //当为缺省值的时候进行赋值
         //currentpage = Integer.parseInt((page == null || page == "0") ? "1": page);//第几页
        // pagesize = Integer.parseInt((rows == null || rows == "0") ? "10": rows);//每页多少行
         
     // 通过一个HibernateCallback对象来执行查询
        List list = (List) getHibernateTemplate().execute(
                new HibernateCallback() {
                    // 实现HibernateCallback接口必须实现的方法
                    public Object doInHibernate(Session session)
                            throws HibernateException {
                        // 执行Hibernate分页查询
                        List result = session.createQuery("from PartyMember")
                                .setFirstResult((currentpage - 1) * pagesize).setMaxResults(pagesize)
                                .list();
                        return result;
                    }
                });
        return list;
    }

    @Override
    public int getTotal() throws Exception {
        // 统计一共有多少数据
            return getHibernateTemplate().find("from PartyMember").size();
    }

service方法

//分页
        public List getList(String page, String rows) throws Exception;//根据第几页获取,每页几行获取数据
        public int getTotal() throws Exception;//统计一共有多少数据

serviceimpl方法

@Override
    public List getList(String page, String rows) throws Exception {
        //当为缺省值的时候进行赋值
        int currentpage = Integer.parseInt((page == null || page == "0") ? "1": page);//第几页
        int pagesize = Integer.parseInt((rows == null || rows == "0") ? "10": rows);//每页多少行
        List list = dao.getList(currentpage, pagesize);
        return list;
    }

    @Override
    public int getTotal() throws Exception {
        return dao.getTotal();
    }

struts.xml

<action name="partyList" class="partyAction" method="list">
         <result type="json">
                <param name="root">jsonObj</param>
            </result>
        </action>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章