layui框架之table表格操作數據實現分頁


Layui是一款免費,開源,輕量級的前端cms框架,適用於企業后端,能快速上手開發,集成了常用的組件,還有完善的文檔和社區。

之前寫一個一個關於數據的table表格顯示 並帶有分頁功能,實現過程遇到了很多問題,現抽空總結一下。

使用之前請先詳細閱讀layer的文檔http://www.layui.com/doc/modules/layer.html

首先下載最新版的layui文件:

下載完之后引入到自己的項目中,放在根目錄的下面某一個地方:

然后在你要用的jsp頁面上引入相應的js和css:

此時路徑應為你放至layui文件包的路徑注意路徑不要引入錯誤!

簡單的一個demo頁面:

頁面顯示為:

在此講一下傳入的數據格式

{"code":0,"msg":"","count":29,"data":[{"id":10000,"username":"user-0",...........

這個是你后台需要返回的數據格式,可以自己定義,參考:https://www.layui.com/demo/table/user/?page=1&limit=30

我自己定義方式為:

首先創建一個返回類型實體類: ResultUtil

寫相應的get,set方法,然后按照layui定義的返回類型格式寫這個方法的實現類:

其中object就是你要在表格中顯示的數據count為數據的條數,然后寫相應的方法,sql語句 這些都很簡單,在此不多說,寫完之后

在控制層方法中也就是前台頁面url這個路徑的方法中調用此方法,注意方法的接口http請求類型,默認:get

然后在前台頁面中使用:

紅圈圈中的這個方法在頁面控制台可以看到你傳入的數據。你傳入的data數據一定要和你頁面上寫的數據一致。

這個是簡單的layui展示table表格的實現過程。

接下來講一講分頁

layui有自帶的分頁功能,樣式還是很好看的,開啟分頁的方法:http://www.layui.com/demo/table/page.html

開啟之后可以自定義分頁的樣式:http://www.layui.com/demo/table/resetPage.html

此時分頁包括分頁的樣式都已經弄好,但是問題就是我們頁面的數據還是查出來的那么多條並沒有根據layui定義分頁去顯示,這個怎么去解決?

這個問題就是說的重點:實現table表格數據的分頁

因為靜態json不支持表格自帶分頁,所以我們要在后台定義好分頁的數據傳入前台頁面。表格設置了page:true
之后,就證明分頁功能啟用了,剩下的就是后台controller中獲得默認傳過去的limit和page兩個參數,根據參數計算獲得當前頁顯示的數據,然后把數據打包為指定的json格式設置返回值就ok了

其實現方法有兩種

第一種:自定義原生的sql語句分頁:在前台頁面配置的table中開啟分頁以后訪問url路徑的時候會傳過去兩個參數,pagelimit。page為當前的頁碼,limit為你定義的分頁條數,這樣可以在后台方法中

接收這兩個參數:

接收之后我們要對page進行重新定義,方便於sql語句的分頁

這樣之后調用service層方法到mapper文件的sql語句可以直接這樣寫(demo示例):

select 數據,數據,數據,......   from 表名 limit #{pages,jdbcType=INTEGER},#{limit,jdbcType=INTEGER}

這樣之后 頁面就實現分頁了,很簡單的。

接下來說說第二中更為方便的寫法

就是使用框架的配置:

首先引入相應的jar包:

然后在mybatis-config.xml中配置分頁:

請注意上圖中我用紅色圈圈中的兩個參數,這個兩個很重要,在dao層寫接收page和limit兩個參數的時候需要用到

不管接受到的參數為什么 注解中一定要用到配置中設定的參數數據,這樣框架才會幫你解析。

配置成功之后 控制層后台只需接受這兩個參數,sql語句只需寫個簡單的查詢就可以了,框架會自動幫你實現分頁。

至此分頁講完。

接下來額外補充一下頁面數據的轉換

比如說頁面上展示的是個人信息:性別字段數據表中存儲的是int類型0或者1  但是在頁面上需要用男和女展示出來,有兩種實現方式;

第一中很簡單  直接在后台service實現方法中給替換成相應的類型,我主要說第二中頁面中替換:

首先請先仔細閱讀官方開發文檔:http://www.layui.com/doc/modules/table.html#cols

請注意這個字段:

點擊詳見自定義模板http://www.layui.com/doc/modules/table.html#templet

實現:

在table定義中需要轉義的字段后面加上templet這個參數(模板選擇器)

然后寫templet對應的模板,它可以存放在頁面的任意位置。模板遵循於 laytpl 語法,可讀取到返回的所有數據:

注意兩者的對應關系:

模板中第一個個我只寫了一個“男”,這個只是將數字1轉為為男在頁面上顯示,第一個我加了一個span,這個不僅僅是將0替換成“女”,而且還改變了其顏色。

只要認真閱讀了layui開發文檔這樣都可以實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM