jquery easyui datagrid 分頁 詳解

前些天用jquery easyui的table easyui-datagrid做分頁顯示的時候,折騰了很久塞帐,后來終于解決了纫溃。其實不難,最主要我不是很熟悉前端的東西赁酝。
table easyui-datagrid分頁 有一個附加的分頁控件犯祠,只需后臺獲取分頁控件自動提交的兩個參數(shù)rows(每頁顯示的記錄數(shù))和page(當(dāng)前第幾頁)然后讀取相應(yīng)頁數(shù)的記錄,和總記錄數(shù)total一塊返回即可酌呆。

1.界面


2.前端代碼

<table id="dg" title="文章管理" class="easyui-datagrid" fitColumns="true" pagination="true"
    url="${pageContext.request.contextPath}/admin/showAllTrainee" toolbar="#tb" rownumbers="true">
    <thead>
        <tr>
            <th field="cb" checkbox="true"  align="center"></th>
            <th field="tid" width="20" align="center" hidden="true"></th>   
            <th field="title" width="200" formatter="formatTitle">標(biāo)題</th>
            <th field="time" width="100" align="center">發(fā)布日期</th> 
            <th field="tname" width="100" align="center">實習(xí)生姓名</th> 
            <th field="major" width="100" align="center">專業(yè)</th> 
            <th field="view_num" width="30" align="center">閱讀量</th> 
            <th field="aname" width="100" align="center">發(fā)布者</th>
        </tr>
    </thead>
</table>

3.后端我用的是springmvc處理數(shù)據(jù)衡载,返回json串

package com.jyb.pojo;

/**
 * 
 * @author 
 * @時間 2016-08-06
 *
 */
public class Page {

    private int page;     //當(dāng)前第幾頁
    private int rows;     //每頁顯示記錄數(shù)
    private int firstPage;  //第幾條記錄起始
    
    
    public Page(int page, int rows){
        this.page = page;
        this.rows = rows;
    }
    public int getPage() {
        return page;
    }
    public void setPage(int page) {
        this.page = page;
    }
    public int getRows() {
        return rows;
    }
    public void setRows(int rows) {
        this.rows = rows;
    }
    public int getFirstPage() {
        firstPage = (page - 1) * rows;
        return firstPage;
    }   
}

    @SuppressWarnings({ "rawtypes", "unchecked" })
    @ResponseBody
    @RequestMapping(value="/showAllTrainee")
    public Map showAllTrainee(@RequestParam(value="page", required=false) String page, 
            @RequestParam(value="rows", required=false) String rows, @RequestParam(value="title", required=false) String title){
           
          Page pageBean = new Page(Integer.parseInt(page), Integer.parseInt(rows));
          Map reMap = new HashMap();          
          Map paraMap = new HashMap();  
          
          paraMap.put("title", title);
          paraMap.put("firstPage", pageBean.getFirstPage());
          paraMap.put("rows", pageBean.getRows());
          
          try {
            List<Map> list = adminService.showAllTrainee(paraMap);
            long total = adminService.getTraineeTotal(paraMap);
            reMap.put("rows", list);     //存放每頁記錄數(shù)
            reMap.put("total", total);   //存放總記錄數(shù) ,必須的
        } catch (Exception e) { 
            e.printStackTrace();
        }
         return reMap; 
    }

其中controller中必須返回json字符串所以加了@ResponseBody注解隙袁。

4.mybatis映射文件

select id="selectTraineeLimit" parameterType="map" resultType="map">
                 select 
                     trainee.tid, 
                     admin.name aname, 
                     trainee.name tname, 
                     trainee.major, 
                     trainee.time, 
                     trainee.title, 
                     trainee.view_num 
                 from 
                    trainee, admin 
                 <where>
                    <if test="title != null and title != ''">
                       and trainee.title like concat('%',#{title},'%')
                    </if>                
                       and trainee.aid = admin.aid
                 </where> 
                 order by 
                    trainee.time desc, trainee.tid                
                 limit 
                    #{firstPage}, 
                    #{rows}; 
         </select>
         
         <select id="getTraineeTotal" parameterType="map" resultType="long">
                select count(tid) from trainee
                <where>
                        <if test="title != null and title != ''">
                           and trainee.title like concat('%',#{title},'%')
                        </if>
                        <if test="name != null and name != ''">
                            and name like concat('%',#{name},'%')
                        </if>
                        <if test="major != null and major != ''">
                            and major like concat('%',#{major},'%')
                        </if>
                        <if test="city != null and city != ''">
                            and city like concat('%',#{city},'%')
                        </if>
                        <if test="company != null and company != ''">
                            and company like concat('%',#{company},'%')
                        </if>
                        <if test="title != null and title != ''">
                            and title like concat('%',#{title},'%')
                        </if>  
                </where>                
         </select>

其他代碼就不上了痰娱,特寫出重點的方便自己或別人作為參考。如果有什么問題大家可以留言菩收,我看見了會解答梨睁。

附:
table easyui-datagrid 生成一個表格。 屬性如下:
  1)title:該DataGrid面板的標(biāo)題文本娜饵。
  2)iconCls:一個CSS類坡贺,將提供一個背景圖片作為標(biāo)題圖標(biāo)。
  3)border:當(dāng)true時箱舞,顯示該datagrid面板的邊框遍坟。
  4)width:面板寬度,自動列寬褐缠。
  5)height:面板高度政鼠,自動列高。
  6)columns:該DataGrid列配置對象队魏,查看column屬性可獲取更多信息公般。
  7)frozenColumns:跟Columns屬性相同,但是這些列將會被固定在左邊胡桨。
  8)striped:當(dāng)true時官帘,單元格顯示條紋。默認(rèn)false昧谊。
  9)method:通過該方法類型請求遠程數(shù)據(jù)刽虹。默認(rèn)post。
  10)nowrap:當(dāng)true時呢诬,顯示數(shù)據(jù)在同一行上涌哲。默認(rèn)true胖缤。
  11)idField:說明哪個字段是一個標(biāo)識字段。
  12)url:一個URL阀圾,從遠程站點獲取數(shù)據(jù)哪廓。
  13)loadMsg:當(dāng)從遠程站點加載數(shù)據(jù)時,顯示一個提示信息初烘。默認(rèn)"Processing,please wait …"涡真。自定義覆蓋。
  14)pagination:當(dāng)true時在DataGrid底部顯示一個分頁工具欄肾筐。默認(rèn)false哆料。
  15)rownumbers:當(dāng)true時顯示行號。默認(rèn)false吗铐。
  16)singleSelect:當(dāng)true時只允許當(dāng)前選擇一行东亦。默認(rèn)false。
  17)fit:當(dāng)true時抓歼,設(shè)置大小以適應(yīng)它的父容器讥此。默認(rèn)false。
  18)pageNumber:當(dāng)設(shè)置分頁屬性時谣妻,初始化的頁碼編號萄喳。默認(rèn)從1開始
  19)pageSize:當(dāng)設(shè)置分頁屬性是,初始化的頁面大小蹋半。默認(rèn)10行
  20)pageList:當(dāng)設(shè)置分頁屬性時他巨,初始化頁面的大小選擇清單。默認(rèn)[10,20,30,40,50]
  21)queryParams:當(dāng)請求遠程數(shù)據(jù)時减江,也可以發(fā)送額外的參數(shù)染突。
  22)sortName:定義哪列可以排序。
  23)sortOrder:定義列的排列順序辈灼,只能是'asc'或'desc'份企。默認(rèn)asc。
Column屬性如下:
  1)title:該列標(biāo)題文本巡莹。
  2)field:該列對應(yīng)的字段名稱司志。
  3)width:列寬。
  4)rowspan:說明該單元格需要多少行數(shù)降宅。
  5)colspan:說明該單元格需要多少列數(shù)骂远。
  6)align:說明Column數(shù)據(jù)的對齊方式。'left'腰根,'right'激才,'center' 都可以使用。
  7)sortable:當(dāng)true時,允許該列進行排序瘸恼。
   8)checkbox:當(dāng)true時劣挫,允許該列出現(xiàn)checkbox。
事件如下:
  1)onLoadSuccess:當(dāng)遠程數(shù)據(jù)加載成功是激活钞脂。
  2)onLoadError:當(dāng)遠程數(shù)據(jù)加載發(fā)現(xiàn)一些錯誤時激活揣云。
  3)onClickRow:當(dāng)用戶點擊某行時激活,參數(shù)包含:
   rowIndex: 點擊的行索引冰啃,從0開始。
   rowData: 點擊行時對應(yīng)的記錄刘莹。
  4)onDblClickRow:當(dāng)用戶雙擊某行時激活阎毅,參數(shù)包含:
    rowIndex: 點擊的行索引,從0開始点弯。
    rowData: 點擊行時對應(yīng)的記錄扇调。
  5)onSortColumn:當(dāng)用戶對某列排序時激活,參數(shù)包含:
   sort:排序字段名稱抢肛。
   order:排序字段類型狼钮。
  6)onSelect:當(dāng)用戶選擇某行時激活,參數(shù)包含:
   rowIndex: 點擊的行索引捡絮,從0開始熬芜。
   rowData: 點擊行時對應(yīng)的記錄。
  7)onUnselect:當(dāng)用戶取消選擇某行時激活福稳,參數(shù)包含:
    rowIndex: 點擊的行索引涎拉,從0開始。
   rowData: 點擊行時對應(yīng)的記錄的圆。
方法如下:
  1)options:返回選擇對象鼓拧。
  2)resize:重調(diào)大小,生成布局越妈。
  3)reload:重新加載數(shù)據(jù)季俩。
  4)fixColumnSize:固定列大小。
  5)loadData:加載本地數(shù)據(jù)梅掠,過去的行會被刪除酌住。
  6)getSelected:返回第一個選中行的記錄,若未選返回null瓤檐。
  7)getSelections:返回選中的所有行赂韵,當(dāng)沒有選擇記錄時將返回空數(shù)組。
  8)clearSelections:清除所有選項的選擇狀態(tài)挠蛉。
  9)selectRow:選擇一行祭示,行索引從0開始。
  10)selectRecord:通過傳遞一個ID值參數(shù),選擇一行质涛。
  11)unselectRow:取消選擇一行稠歉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市汇陆,隨后出現(xiàn)的幾起案子怒炸,更是在濱河造成了極大的恐慌,老刑警劉巖毡代,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阅羹,死亡現(xiàn)場離奇詭異,居然都是意外死亡教寂,警方通過查閱死者的電腦和手機捏鱼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酪耕,“玉大人导梆,你說我怎么就攤上這事∮厮福” “怎么了看尼?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盟步。 經(jīng)常有香客問我藏斩,道長,這世上最難降的妖魔是什么址芯? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任灾茁,我火速辦了婚禮,結(jié)果婚禮上谷炸,老公的妹妹穿的比我還像新娘北专。我一直安慰自己,他們只是感情好旬陡,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布拓颓。 她就那樣靜靜地躺著,像睡著了一般描孟。 火紅的嫁衣襯著肌膚如雪驶睦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天匿醒,我揣著相機與錄音场航,去河邊找鬼。 笑死廉羔,一個胖子當(dāng)著我的面吹牛溉痢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼孩饼,長吁一口氣:“原來是場噩夢啊……” “哼髓削!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起镀娶,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤立膛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后梯码,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宝泵,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年忍些,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲁猩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡罢坝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出搅窿,到底是詐尸還是另有隱情嘁酿,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布男应,位于F島的核電站闹司,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏沐飘。R本人自食惡果不足惜游桩,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望耐朴。 院中可真熱鬧借卧,春花似錦、人聲如沸筛峭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽影晓。三九已至镰吵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挂签,已是汗流浹背疤祭。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留饵婆,地道東北人勺馆。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親谓传。 傳聞我的和親對象是個殘疾皇子蜈项,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)续挟,斷路器紧卒,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法诗祸,內(nèi)部類的語法跑芳,繼承相關(guān)的語法,異常的語法直颅,線程的語...
    子非魚_t_閱讀 31,623評論 18 399
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,077評論 25 707
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案博个? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,748評論 1 92
  • 關(guān)關(guān)是官二代,而且家教甚嚴(yán)功偿。 這樣的家庭環(huán)境造就的女孩不可小覷盆佣! 關(guān)關(guān)喜歡趙醫(yī)生,可是她不敢承認(rèn)械荷,但她也并沒有放棄...
    沒事扎扎心閱讀 236評論 0 0