angularjs表格分頁功能詳解
接上一次,這次主要介紹表格分頁功能,由于項目需要這個案例是關(guān)于前端分頁的方式,現(xiàn)在很少會這么用了,但如有需要可以參考其中的思路
html:
1.通過UL來展示頁標(biāo),其中每個頁標(biāo)的li是通過異步加載從獲取到不同的表格數(shù)據(jù)來動態(tài)生成的。
<div class="pagination">
<ul style="float:right">
<li id="previous"><a href="">上一頁</a></li>
<li><!--用于頁標(biāo)的顯示 -->
<ul id="page_num_all">
</ul>
</li>
<li id="next"><a href="" style="border:1px solid #ddd;float:right">下一頁</a></li>
</ul>
<span>
當(dāng)前為第<span class="num" id="current_page"></span>頁,總共<span class="num" id="page_all"></span>頁
</span>
</div>
js:
1.首先需要設(shè)置每頁想要顯示的條數(shù),通過選取頁面元素來確定本次生成的總條數(shù),以及當(dāng)前所在的頁數(shù)(為跳轉(zhuǎn)做準(zhǔn)備)
2.如果總頁數(shù)大于生成的當(dāng)前頁數(shù),則繼續(xù)生成下一頁直到完畢后,將角標(biāo)添加到頁面中
3.將所有的表格數(shù)據(jù)隱藏,只顯示一開始設(shè)置的第一頁中的5條
4.跳轉(zhuǎn)頁面功能,tab_page()通過傳入的index(頁數(shù))*顯示的條數(shù)來確定截取tr的開始位置和結(jié)束位置,然后將所有的tr隱藏,只顯示該范圍內(nèi)的tr(display:“”);
5.上一頁下一頁和跳轉(zhuǎn)功能,獲取當(dāng)前頁的數(shù)字,注意判斷是否為第一或最后一頁,將其作為index傳入跳轉(zhuǎn)功能中即可
function table_page(){
var show_page=5;//每頁顯示的條數(shù)
var page_all=$("#page").children().size();//總條數(shù)
var current_page=1;//當(dāng)前頁
// console.log(page_all);
var page_num=Math.ceil(page_all/show_page);//總頁數(shù)
var current_num=0;//用于生成頁標(biāo)的計數(shù)器
var li="";//頁標(biāo)元素
while(page_num>current_num){//循環(huán)生成頁標(biāo)元素
li+='<li class="page_num"><a href="javasctip:(0)">'+(current_num+1)+'</a></li>';
current_num++;
}
$("#page_num_all").html(li);//添加頁標(biāo)到頁面
$('#page tr').css('display', 'none');//設(shè)置隱藏
$('#page tr').slice(0, show_page).css('display', '');//設(shè)置顯示
$("#current_page").html(" "+current_page+" ");//顯示當(dāng)前頁
$("#page_all").html(" "+page_num+" ");//顯示總頁數(shù)
$("#previous").click(function(){//上一頁
var new_page=parseInt($("#current_page").text())-1;
if(new_page>0){
$("#current_page").html(" "+new_page+" ");
tab_page(new_page);
}
});
$("#next").click(function(){//下一頁
var new_page=parseInt($("#current_page").text())+1;//當(dāng)前頁標(biāo)
if(new_page<=page_num){//判斷是否為最后或第一頁
$("#current_page").html(" "+new_page+" ");
tab_page(new_page);
}
});
$(".page_num").click(function(){//頁標(biāo)跳轉(zhuǎn)
var new_page=parseInt($(this).text());
tab_page(new_page);
});
function tab_page(index){//切換對應(yīng)頁標(biāo)的頁面
var start=(index-1)*show_page;//開始截取的頁標(biāo)
var end=start+show_page;//截取個數(shù)
$('#page').children().css('display', 'none').slice(start, end).css('display', '');
current_page=index;
$("#current_page").html(" "+current_page+" ");
}
}
table_page();
以上就是表格的前端分頁方法和頁數(shù),頁標(biāo)等跳轉(zhuǎn)方式的方法,請結(jié)合第一章中的數(shù)據(jù)測試。
相關(guān)文章
詳解為Angular.js內(nèi)置$http服務(wù)添加攔截器的方法
所謂攔截器就是在目標(biāo)達到目的地之前對其進行處理以便處理結(jié)果更加符合我們的預(yù)期。Angular的$http攔截器是通過$httpProvider.interceptors數(shù)組定義的一組攔截器,每個攔截器都是實現(xiàn)了某些特定方法的Factory。本文就介紹了為Angular.js內(nèi)置$http服務(wù)添加攔截器的方法。2016-12-12
AngularJS向后端ASP.NET API控制器上傳文件
這篇文章主要介紹了AngularJS向后端ASP.NET API控制器上傳文件的相關(guān)資料,需要的朋友可以參考下2016-02-02
Angular4學(xué)習(xí)筆記之準(zhǔn)備和環(huán)境搭建項目
這篇文章主要介紹了Angular4學(xué)習(xí)筆記之準(zhǔn)備和環(huán)境搭建項目,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
Angular 5.x 學(xué)習(xí)筆記之Router(路由)應(yīng)用
本篇文章主要介紹了Angular 5.x 學(xué)習(xí)筆記之Router(路由)應(yīng)用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
關(guān)于angular引入ng-zorro的問題淺析
這篇文章主要給大家介紹了關(guān)于angular引入ng-zorro的問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
使用Angular CLI快速創(chuàng)建Angular項目的一些基本概念和寫法小結(jié)
這篇文章主要介紹了使用Angular CLI快速創(chuàng)建Angular項目的一些基本概念和寫法小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
Angular2使用vscode斷點調(diào)試ts文件的方法
本篇文章主要介紹了Angular2使用vscode斷點調(diào)試ts文件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12

