① Laravel一個頁面里有多個分頁並用jQuery pagination.js實現
Laravel一個頁面里有多個分頁並用jQuery pagination.js實現
[javascript] view plain
<!-- JQUERY分頁 -->
<script src="{{asset('lib/js/jquery.pagination.js')}}"></script> //引入該文件前別忘了引入JQUERY庫
<script>
$(function(){
//這是一個非常簡單的demo實例,讓列表元素分頁顯示,我們一個頁面里既有老師,又有學生,分別分頁,還要換行
//回調函數的作用是顯示對應分頁的列表項內容
//回調函數在用戶每次點擊分頁鏈接的時候執行
//參數page_index{int整型}表示當前的索引頁
var initPagination = function() {
// var num_entries = $("#hiddenresult div.result").length;
// 創建分頁
var num_entries = $(".teacher").length; //這個是總條數,所以把生成的teacher類的tr全統計一下
$("#teacher_page").pagination(num_entries, {
num_edge_entries: 1, //邊緣頁數
num_display_entries: 4, //主體頁數
callback: pageselectCallback,
items_per_page:10, //每頁顯示項
prev_text:"上頁",
next_text:"下頁",
});
var num2 = $(".student").length;
$("#student_page").pagination(num2, {
num_edge_entries: 1, //邊緣頁數
num_display_entries: 4, //主體頁數
callback: stuPageselectCallback,
items_per_page:10, //每頁顯示項
prev_text:"上頁",
next_text:"下頁",
});
}();
function pageselectCallback(page_index,jq){ //回調函數,page_index是當前頁的頁碼,第一頁是0,jq是頁面那個分頁的條條容器
var num_entries = $(".teacher").length; //總條數
var per_page = 10; //每頁顯示
var max_elem = Math.min((page_index+1)*per_page,num_entries); //每頁的最大值
// 獲取載入元素
$('.teacher_tr').hide(); //先把原來輸出的隱藏
$('.teacher_tr_new1').empty(); //清空第一行,我們要按照兩行,每行5個輸出
$('.teacher_tr_new2').empty(); //清空第二行
var i = 0;
for(var j=page_index*per_page;j<max_elem;j++){ //每頁執行這個循環,因為是回調函數,所以換一次頁執行一次
if(i>=0 && i<Math.ceil(per_page/2)){ //如果這樣就輸出到第一行
$('.teacher_tr_new1').append("<td>"+$(".teacher:eq("+j+")").html()+"</td>");
}else if(i>=Math.ceil(per_page/2) && i<per_page){ //輸出到第二行
$('.teacher_tr_new2').append("<td>"+$(".teacher:eq("+j+")").html()+"</td>");
}
i++;
if(i == per_page){ //用I控制是將內容填充到teacher_tr_new1還是2,10是每頁顯示條數
i = 0;
}
}
console.log();
//JQ代表頁面裝載的容器pagi1,pagi2之類的
return false;
}
function stuPageselectCallback(page_index,jq){ //學生的分頁
var num_entries = $(".student").length;
var per_page = 10;
var max_elem = Math.min((page_index+1)*per_page,num_entries);
// 獲取載入元素
// $(jq).prev().hide();
// $(jq).prev().prev().empty();
$('.student_tr').hide();
$('.student_tr_new1').empty();
$('.student_tr_new2').empty();
var i = 0;
for(var j=page_index*per_page;j<max_elem;j++){
if(i>=0 && i<Math.ceil(per_page/2)){
$('.student_tr_new1').append("<td>"+$(".student:eq("+j+")").html()+"</td>");
}else if(i>=Math.ceil(per_page/2) && i<per_page){
$('.student_tr_new2').append("<td>"+$(".student:eq("+j+")").html()+"</td>");
}
i++;
if(i == per_page){
i = 0;
}
}
console.log();
//JQ代表頁面裝載的容器pagi1,pagi2之類的
return false;
}
});
</script>
<!-- JQUERY分頁結束 -->
下面是模板:
[html] view plain
<table>
<tr class='teacher_tr'>
<?php $i=1; ?>
@foreach($teachers as $t)
<td class='teacher'>
<a href="{{URL('myschoolmobileview/jiaoshi/'.$t->id)}}" target='_blank'>{{OfficeConvert($t->office_id)}}:{{$t->name}}</a>
<br>
<img src="{{URL($t->protrait)}}" alt="" width='180' height='250'>
</td>
<?php
if($i%5==0){
echo "</tr>";
echo "<tr class='teacher_tr'>";
}
$i++;
?>
@endforeach
</table>
該班的老師:
<table class='table'>
<tr class='teacher_tr_new1'> //第一行
</tr>
<tr class='teacher_tr_new2'> //第二行
</tr>
<tr>
<td><div id='teacher_page' class='pagination'></div></td> //這里就是我所說的那個容器jq
</tr >
</table>
<!-- 老師結束 -->
<!-- 學生開始 -->
<table>
<tr class='student_tr'>
<?php $i=1; ?>
@foreach($students as $s)
<td class='student'>
{{StudentRoleConvert($s->role_id)}}:{{$s->name}}
<br>
<img src="{{URL($s->header_img)}}" alt="" width='180' height='250'>
</td>
<?php
if($i%5==0){
echo "</tr >";
echo "<tr class='student_tr'>";
}
$i++;
?>
@endforeach
</table>
該班的學生:
<table class='table'>
<tr class='student_tr_new1'>
</tr>
<tr class='student_tr_new2'>
</tr>
<tr>
<td><div id='student_page' class='pagination'></div></td>
</tr >
</table>
最後還要注意下就是,往頁面里輸出的結果太多的話可能會卡,因為原理就是把別的隱藏,只顯示你想要的
② jquery.pagination.js 分頁插件,一直執行回調方法,死循環了
listresult(page_id+1, psize);
請粘貼這個方法的方法體
③ jquery.pagination.js 的next能不能添加click事件
可以,有三種方案:
直接在next的標簽上寫onclick事件,將你的方法寫在裡面:如
<a href="#" onclick="next()">next</a>
寫在頁面的JS裡面
<a href="#" class="next">next</a>
如:$(".next").click(function(e) {
......
});
修改框架的源代碼,實際上這個是最麻煩但是也最靠譜的
④ js實現分頁
然後計算出一共分為幾頁
計算開始顯示的行數,和最後顯示的行數
遍歷顯示數據實現分頁
實現最下方的顯示,第幾頁,上一頁,下一頁
當前頁為第一頁時,上一頁沒有點擊事件
當前頁為最後一頁時,下一頁沒有點擊事件
否則,上一頁和下一頁均可使用,點擊某一頁會跳轉到那一頁
到此,分頁效果已經實現了。
⑤ 求高手幫忙用js對列表進行分頁
我已經把分頁做好了,剩下的你應該可以解決!
varObjPage={};
///總記錄數
ObjPage.RecordCount=0;
///總共頁數
ObjPage.PageCount=0;
///當前頁數,1為第一頁
ObjPage.PageIndex=1;
///每頁記錄數
ObjPage.PageSize=3;
///生成分頁按鈕
ObjPage.Fun=function(){
varsb='';
if(ObjPage.PageIndex<=1){
sb+='<spanid="spanFirst"val="0">首頁</span><spanid="spanPre"val="0">上一頁</span>';
}else{
sb+='<spanid="spanFirst"val="1">首頁</span><spanid="spanPre"val="'+(ObjPage.PageIndex-1)+'">上一頁</span>';
}
if(ObjPage.PageIndex>=ObjPage.PageCount){
sb+='<spanid="spanNext"val="0">下一頁</span><spanid="spanLast"val="0">尾頁</span>';
}else{
sb+='<spanid="spanNext"val="'+(ObjPage.PageIndex+1)+'">下一頁</span><spanid="spanLast"val="'+(ObjPage.PageCount)+'">尾頁</span>';
}
sb+='第<spanid="spanPageNum">'+ObjPage.PageIndex+'</span>頁/共<spanid="spanTotalPage">'+ObjPage.PageCount+'</span>頁';
$(".pagess").html(sb);
};
///初始化數據
ObjPage.Load=function(){
varPicList=$(".PicList");
vardd_length=PicList.find("dd").length;
ObjPage.RecordCount=dd_length;
varPageCount=dd_length%ObjPage.PageSize>0?1:0;
ObjPage.PageCount=parseInt(dd_length/ObjPage.PageSize)+PageCount;
ObjPage.Fun();
};
$(function(){
ObjPage.Load();
$("#spanPre,#spanNext,#spanLast,#spanFirst").live("click",function(){
varv_val=parseInt($(this).attr("val"));
if(v_val==0){
varv_id=$(this).attr("id");alert(v_id);
switch(v_id){
case"spanLast":
alert("已經是尾頁");
break;
case"spanFirst":
alert("已經是首頁");
break;
}
return;
}
ObjPage.PageIndex=v_val;
ObjPage.Fun();
});
});
⑥ js的分頁原理以及實現步驟是什麼
主要是借鑒了網上一個例子,修改了一些小地方,前端分頁的技巧,表格的數據是已經寫好了,可以前端渲染表格然後再分頁,都是可以的。
其實分頁最關鍵是這兩句:
var startRow = (currentPage - 1) * pageSize+1; //currentPage 為當前頁,pageSize為每頁顯示的數據量
var endRow = currentPage * pageSize;
找到我們需要顯示的行的范圍(starRow~endRow)
ps:這里在跳轉的時候遇到了一個小BUG,就是獲取到的select的value值是string類型的,比如獲取到了1,然後你想再加1的時候就會變成"11" 而不是我們想要的"2",所以這里需要用parseInt( )來轉換一下,小細節需要注意呀!!!
效果圖:
[javascript] view plain print?
<!doctypehtml>
<html>
<head>
<metacharset='utf-8'>
<styletype="text/css">
a{
text-decoration:none;
}
.table2{
border:#C8C8C8solid;
border-width:1px0px0px1px;
background:#F3F0F0;
margin-top:25px;
}
.td0{
border:#C8C8C8solid;
border-width:001px0;
}
.td2{
border:#C8C8C8solid;
border-width:01px1px0;
}
.barcon{
width:1000px;
margin:0auto;
text-align:center;
}
.barcon1{
font-size:17px;
float:left;
margin-top:20px;
}
.barcon2{
float:right;
}
.barcon2ul{
margin:20px0;
padding-left:0;
list-style:none;
text-align:center;
}
.barcon2li{
display:inline;
}
.barcon2a{
font-size:16px;
font-weight:normal;
display:inline-block;
padding:5px;
padding-top:0;
color:black;
border:1pxsolid#ddd;
background-color:#fff;
}
.barcon2a:hover{
background-color:#eee;
}
.ban{
opacity:.4;
}
</style>
</head>
<body>
<tablewidth="950"cellpadding="0"cellspacing="0"class="table2"align="center">
<thead>
<tr>
<tdcolspan="3"height="33"class="td0"></td>
<tdalign="center"class="td2"><ahref="###">添加用戶</a></td>
</tr>
<tralign="center">
<thwidth="150"height="33"class="td2">序號</th>
<thwidth="300"class="td2">用戶名</th>
<thwidth="250"class="td2">許可權</th>
<thwidth="250"class="td2">操作</th>
</tr>
</thead>
<tbodyid="adminTbody">
<tralign="center">
<tdclass="td2"height="33"width="150">1</td>
<tdclass="td2">admin</td>
<tdclass="td2">管理員</td>
<tdclass="td2"><ahref="###">修改</a></td>
</tr>
</tbody>
</table>
<divid="barcon"class="barcon">
<divid="barcon1"class="barcon1"></div>
<divid="barcon2"class="barcon2">
<ul>
<li><ahref="###"id="firstPage">首頁</a></li>
<li><ahref="###"id="prePage">上一頁</a></li>
<li><ahref="###"id="nextPage">下一頁</a></li>
<li><ahref="###"id="lastPage">尾頁</a></li>
<li><selectid="jumpWhere">
</select></li>
<li><ahref="###"id="jumpPage"onclick="jumpPage()">跳轉</a></li>
</ul>
</div>
</div>
<scriptsrc="jquery.js"></script>
<script>
/*動態生成用戶函數
num為生成的用戶數量
*/
functiondynamicAddUser(num){
for(vari=1;i<=num;i++)
{
vartrNode=document.createElement("tr");
$(trNode).attr("align","center");
//序號
vartdNodeNum=document.createElement("td");
$(tdNodeNum).html(i+1);
tdNodeNum.style.width="150px";
tdNodeNum.style.height="33px";
tdNodeNum.className="td2";
//用戶名
vartdNodeName=document.createElement("td");
$(tdNodeName).html("lzj"+i);
tdNodeName.style.width="300px";
tdNodeName.className="td2";
//許可權
vartdNodePri=document.createElement("td");
tdNodePri.style.width="250px";
tdNodePri.className="td2";
varpriText=document.createElement("span");
$(priText).css({"display":"inline-block","text-align":"center"});
$(priText).text("普通用戶");
tdNodePri.appendChild(priText);
//操作
vartdNodeOper=document.createElement("td");
tdNodeOper.style.width="170px";
tdNodeOper.className="td2";
vareditA=document.createElement("a");
$(editA).attr("href","###").text("編輯");
$(editA).css({display:"inline-block"});
tdNodeOper.appendChild(editA);
trNode.appendChild(tdNodeNum);
trNode.appendChild(tdNodeName);
trNode.appendChild(tdNodePri);
trNode.appendChild(tdNodeOper);
$("#adminTbody")[0].appendChild(trNode);
}
}
$(function(){
dynamicAddUser(80);
goPage(1,10);
vartempOption="";
for(vari=1;i<=totalPage;i++)
{
tempOption+='<optionvalue='+i+'>'+i+'</option>'
}
$("#jumpWhere").html(tempOption);
})
/**
*分頁函數
*pno--頁數
*psize--每頁顯示記錄數
*分頁部分是從真實數據行開始,因而存在加減某個常數,以確定真正的記錄數
*純js分頁實質是數據行全部載入,通過是否顯示屬性完成分頁功能
**/
varpageSize=0;//每頁顯示行數
varcurrentPage_=1;//當前頁全局變數,用於跳轉時判斷是否在相同頁,在就不跳,否則跳轉。
vartotalPage;//總頁數
functiongoPage(pno,psize){
varitable=document.getElementById("adminTbody");
varnum=itable.rows.length;//表格所有行數(所有記錄數)
pageSize=psize;//每頁顯示行數
//總共分幾頁
if(num/pageSize>parseInt(num/pageSize)){
totalPage=parseInt(num/pageSize)+1;
}else{
totalPage=parseInt(num/pageSize);
}
varcurrentPage=pno;//當前頁數
currentPage_=currentPage;
varstartRow=(currentPage-1)*pageSize+1;
varendRow=currentPage*pageSize;
endRow=(endRow>num)?num:endRow;
//遍歷顯示數據實現分頁
/*for(vari=1;i<(num+1);i++){
varirow=itable.rows[i-1];
if(i>=startRow&&i<=endRow){
irow.style.display="";
}else{
irow.style.display="none";
}
}*/
$("#adminTbodytr").hide();
for(vari=startRow-1;i<endRow;i++)
{
$("#adminTbodytr").eq(i).show();
}
vartempStr="共"+num+"條記錄分"+totalPage+"頁當前第"+currentPage+"頁";
document.getElementById("barcon1").innerHTML=tempStr;
if(currentPage>1){
$("#firstPage").on("click",function(){
goPage(1,psize);
}).removeClass("ban");
$("#prePage").on("click",function(){
goPage(currentPage-1,psize);
}).removeClass("ban");
}else{
$("#firstPage").off("click").addClass("ban");
$("#prePage").off("click").addClass("ban");
}
if(currentPage<totalPage){
$("#nextPage").on("click",function(){
goPage(currentPage+1,psize);
}).removeClass("ban")
$("#lastPage").on("click",function(){
goPage(totalPage,psize);
}).removeClass("ban")
}else{
$("#nextPage").off("click").addClass("ban");
$("#lastPage").off("click").addClass("ban");
}
$("#jumpWhere").val(currentPage);
}
functionjumpPage()
{
varnum=parseInt($("#jumpWhere").val());
if(num!=currentPage_)
{
goPage(num,pageSize);
}
}
</script>
</body>
</html>
⑦ 關於jquery.pagination.js分頁的問題,老報錯是怎麼回事
我也是啊,但個頁面可以,放到mvcindex中就是不行。
------------------------------------------------------------------------
我剛才出來效果了。
我用的MVC4.
一、先在BundleConfig.cs中 引入css 和 jpaginate
//分頁腳本
bundles.Add(new ScriptBundle("~/bundles/jPaginate").Include("~/Content/jPaginate/jquery.paginate.js"));
//分頁樣式
bundles.Add(new StyleBundle("~/bundles/jPaginateCss").Include("~/Content/jPaginate/css/style.css"));
二、 在再layout中 加入:
@Styles.Render("~/bundles/jPaginateCss")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jPaginate")
注意吧jquery的提前了
三、 然後再 Index 中
@{
ViewBag.Title="Index";
}
<h2>Index</h2>
<divclass="demo">
<h1>Demo4</h1>
<divid="demo1">
</div>
</div>
<script>
$(function(){
$("#demo1").paginate();
});
</script>
這是默認的風格,然後自己去調吧 剛試出來的
⑧ jQuery分頁插件pagination具體怎麼用求詳細教程
本文實例為大家分享了jQuery Pagination分頁插件的具體代碼,供大家參考,具體內容如下
一、引用CSS和JS:
<link href="/Content/Plugins/jQuery.Pagination_v2.2/pagination.css" rel="external nofollow" rel="stylesheet" type="text/css" /> <script src="/Content/Plugins/jQuery.Pagination_v2.2/jquery.pagination.js" type="text/javascript"></script>
二、HTML:
<div id="Pagination" class="flickr" style="margin-top: 10px; margin-left: 10px;"> </div>
三、JS:
$(function () { var total = parseInt("@(ViewBag.total)"); var page = parseInt("@(ViewBag.page)") - 1; var pageSize = parseInt("@(ViewBag.pageSize)"); $("#Pagination").pagination(total, { callback: function (page_id) { window.location = "BoardList?page=" + page_id + "&pageSize=" + this.items_per_page; }, //PageCallback() 為翻頁調用次函數。 prev_text: " 上一頁", next_text: "下一頁 ", items_per_page: 10, //每頁的數據個數 num_display_entries: 1, //兩側首尾分頁條目數 current_page: page, //當前頁碼 num_edge_entries: 11 //連續分頁主體部分分頁條目數 }); });
四、後台代碼:
public ActionResult BoardList() { PagerModel pager = new PagerModel(); if (Request["page"] == null) { pager.page = 1; pager.rows = 10; pager.sort = "Id"; pager.order = "desc"; } else { pager.page = int.Parse(Request["page"]) + 1; pager.rows = int.Parse(Request["pageSize"]); pager.sort = "Id"; pager.order = "desc"; } boardManageService.GetList(ref pager); List<BoardModel> boardList = pager.result as List<BoardModel>; ViewData["BoardModelList"] = boardList; ViewBag.page = pager.page; ViewBag.total = pager.totalRows; ViewBag.pageSize = pager.rows; return View(); } #endregion
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。