前言:最近項目上使用layui做前端頁面,發現layui的table本身的分頁不能根據屏幕生成每頁行數,所以研究了下文檔,更改分頁
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:國際域名空間、虛擬空間、營銷軟件、網站建設、羅定網站維護、網站推廣。
簡單解釋:
1.最開始是根據屏幕計算加載的每頁行數
2.framework可以糊了,由于是老項目還使用了sea.js
3.getUrlParam()是用于其他頁面帶參數跳轉的也可以忽略
function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //構造一個含有目標參數的正則表達式對象 var r = window.location.search.substr(1).match(reg); //匹配目標參數 if (r != null) return decodeURI(r[2]); return null; //返回參數值 }
4.templet屬性用于對后端接收到的數據進行格式化,其他屬性請自行查看官方文檔
5.laypage中的jump方法!first必須加,否則會無限調用接口,無法結束初始化
具體js代碼如下:
function getData(page) { var rows = Math.floor(($(window).height() - $('.topNav').height() - $('.content .noBorderB').height() - $('.content .searchD').height() - $('.content .commonTb tr:eq(0)').height() - 100) / 30); rows = rows <= 0 ? 1 : rows; framework.hideLoading(); var objectIdSearch = getUrlParam("objectId"); if(objectIdSearch==''||objectIdSearch==undefined){ objectIdSearch = $.trim($("#idSearch").val()); } var pages=1; var counts=1; layui.use('table', function(){ var table = layui.table; var laypage=layui.laypage; table.render({ elem: '#test' // , url: { ,url:'/app/client/user/audio/listp' ,method:"get" ,where: { pageNo : page, pageSize : rows, objectId : objectIdSearch , userId : $.trim($("#userIdSearch").val()), userName : $.trim($("#userNameSearch").val()), objectName : $.trim($("#audioNameSearch").val()), chapterName : $.trim($("#chapterNameSearch").val()), createTime : $.trim($("#createTime").val()) } ,response:{ statusName: 'page' //數據狀態的字段名稱,默認:code ,statusCode: page //成功的狀態碼,默認:0 ,countName: 'records' //數據總數的字段名稱,默認:count ,dataName: 'rows' //數據列表的字段名稱,默認:data } // } , cellMinWidth: 80 //全局定義常規單元格的最小寬度,layui 2.2.1 新增 , cols: [[ {field: 'id', title: 'ID', align: 'center', sort: true,width:80} , {field: 'audioBook',width:80, align: 'center', title: '有聲書ID', templet: function(d){ return d.audioBook.id }} //width 支持:數字、百分比和不填寫。你還可以通過 minWidth 參數局部定義當前單元格的最小寬度,layui 2.2.1 新增 , {field: 'audioBook',width:124, align: 'center', title: '有聲書名稱', sort: true,templet: function(d){ return d.audioBook.name }} , {field: 'objectType',width:80, align: 'center', title: '類型' , templet: function(d){ if(d=='20'){ return "有聲書" }else{ return "課程" } }} , {field: 'chapter',width:80, align: 'center', sort: true,title: '章節ID', templet: function(d){ return d.chapter.id }} , {field: 'chapter.title',width:180, title: '章節名稱', align: 'center', templet: function(d){ return d.chapter.title }} //單元格內容水平居中 , {field: 'payTimes',width:120, title: '購買次數', sort: true, align: 'center'} //單元格內容水平居中 , {field: 'createTime',width:180, title: '購買時間', sort: true, align: 'center', templet: function(d){ return longTrans2Date(d.createTime) }} , {field: 'userInfo',width:80, title: '用戶ID', sort: true, align: 'center', templet: function(d){ return d.userInfo.userId }} , {field: 'userInfo',width:160, title: '用戶名稱', sort: true, align: 'center', templet: function(d){ return d.userInfo.userName }} ]] , done: function(res, curr, count){ pages=res.page; counts=res.records; //完整功能 laypage.render({ elem: 'demo7' ,count: counts ,curr: pages ,limit:rows ,layout: ['count', 'prev', 'page', 'next', 'refresh', 'skip'] ,jump: function(obj,first){ // getData(obj.curr) if(!first){ getData(obj.curr) } } }); } }); }) }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。
分享名稱:layui2.0使用table+laypage實現真分頁
網站URL:http://vcdvsql.cn/article30/iijjpo.html
成都網站建設公司_創新互聯,為您提供建站公司、品牌網站建設、微信小程序、用戶體驗、ChatGPT、軟件開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯