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>

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