前端分页例子

目的:分页有前端和后端的方法,最近弄了一个前端分页的方法代码如下

例子解析: 前端分页方法基于从后台查出来数据,渲染了表格,然后再去控制表格中数据的显示分页。代码核心在于goPage()方法

<!doctype html>  
<html>  
<head>  
 <meta charset='utf-8'>  
 <style type="text/css">  
    
     a{  
    text-decoration: none;  
    }  
      
    .table2{  
     border:#C8C8C8 solid;     
    border-width:1px 0px 0px 1px;   
    background: #F3F0F0;  
    margin-top:25px;  
    }  
      
    .td0{  
        border:#C8C8C8 solid;    
    border-width:0 0 1px 0;  
    }  
      
    .td2{  
        border:#C8C8C8 solid;     
    border-width:0 1px 1px 0 ;  
    }  
      
    .barcon {  
     width: 1000px;  
     margin: 0 auto;  
     text-align: center;  
        }  
  
    .barcon1 {  
        font-size: 17px;  
        float: left;  
        margin-top: 20px;  
    }  
  
    .barcon2 {  
     float: right;  
    }  
  
    .barcon2 ul {  
        margin: 20px 0;  
        padding-left: 0;  
        list-style: none;  
        text-align: center;  
    }  
  
    .barcon2 li {  
        display: inline;  
    }  
  
    .barcon2 a {  
        font-size: 16px;  
    font-weight: normal;  
    display: inline-block;  
    padding: 5px;  
    padding-top: 0;  
    color: black;  
    border: 1px solid #ddd;  
    background-color: #fff;  
    }  
  
    .barcon2 a:hover{  
    background-color: #eee;  
    }  
  
    .ban {  
        opacity: .4;  
    }  
 </style>  
</head>  
    <body>
    <body οnlοad="goPage(1,6);">  
    <table width="950" cellpadding="0" cellspacing="0" class="table2" align="center">  
    <thead>  
    <tr>  
    <td colspan="3" height="33" class="td0"> </td>  
    <td align="center" class="td2"><a href="###">添加用户</a></td>  
    </tr>  
    <tr align="center">  
        <th width="150" height="33" class="td2">序号</th>  
        <th width="300" class="td2">用户名</th>  
        <th width="250" class="td2">权限</th>  
        <th width="250" class="td2">操作</th>  
    </tr>  
    </thead>  
    <tbody id="adminTbody">  
    <tr align="center">  
        <td class="td2" height="33" width="150">1</td>  
        <td class="td2" >admin</td>  
        <td class="td2" >管理员</td>  
        <td class="td2" ><a href="###">修改</a></td>  
    </tr>  
    <tr align="center">  
        <td class="td2" height="33" width="150">1</td>  
        <td class="td2" >zxn</td>  
        <td class="td2" >普通用户</td>  
        <td class="td2" ><a href="###">修改</a></td>  
    </tr>  
    <tr align="center">  
        <td class="td2" height="33" width="150">1</td>  
        <td class="td2" >zxn1</td>  
        <td class="td2" >普通用户</td>  
        <td class="td2" ><a href="###">修改</a></td>  
    </tr>  
    <tr align="center">  
        <td class="td2" height="33" width="150">1</td>  
        <td class="td2" >zxn2</td>  
        <td class="td2" >普通用户</td>  
        <td class="td2" ><a href="###">修改</a></td>  
    </tr>  
    <tr align="center">  
        <td class="td2" height="33" width="150">1</td>  
        <td class="td2" >zxn3</td>  
        <td class="td2" >普通用户</td>  
        <td class="td2" ><a href="###">修改</a></td>  
    </tr>  
    <tr align="center">  
        <td class="td2" height="33" width="150">1</td>  
        <td class="td2" >zxn4</td>  
        <td class="td2" >普通用户</td>  
        <td class="td2" ><a href="###">修改</a></td>  
    </tr>  
    <tr align="center">  
        <td class="td2" height="33" width="150">1</td>  
        <td class="td2" >zxn5</td>  
        <td class="td2" >普通用户</td>  
        <td class="td2" ><a href="###">修改</a></td>  
    </tr>  
    <tr align="center">  
        <td class="td2" height="33" width="150">1</td>  
        <td class="td2" >zxn6</td>  
        <td class="td2" >普通用户</td>  
        <td class="td2" ><a href="###">修改</a></td>  
    </tr>  
    <tr align="center">  
        <td class="td2" height="33" width="150">1</td>  
        <td class="td2" >zxn7</td>  
        <td class="td2" >普通用户</td>  
        <td class="td2" ><a href="###">修改</a></td>  
    </tr>  
    </tbody>  
</table>  
<div id="barcon" class="barcon" >  
    <div id="barcon1" class="barcon1"></div>  
        <div id="barcon2" class="barcon2">  
            <ul>  
                <li><a href="###" id="firstPage">首页</a></li>  
                <li><a href="###" id="prePage">上一页</a></li>  
                <li><a href="###" id="nextPage">下一页</a></li>  
                <li><a href="###" id="lastPage">尾页</a></li>  
                <li><select id="jumpWhere">  
                </select></li>  
                <li><a href="###" id="jumpPage" οnclick="jumpPage()">跳转</a></li>  
            </ul>  
        </div>  
</div> 
</body>
<script src="jquery.min.js"></script>  
<script>  
/** 
 * 分页函数 
 * pno--页数 
 * psize--每页显示记录数 
 * 分页部分是从真实数据行开始,因而存在加减某个常数,以确定真正的记录数 
 * 纯js分页实质是数据行全部加载,通过是否显示属性完成分页功能 
**/  
  
var pageSize=0;//每页显示行数  
var currentPage_=1;//当前页全局变量,用于跳转时判断是否在相同页,在就不跳,否则跳转。  
function goPage(pno,psize){  
    var itable = document.getElementById("adminTbody");  
    var num = itable.rows.length;//表格所有行数(所有记录数)  
  
    pageSize = psize;//每页显示行数  
    //总共分几页   
    if(num/pageSize > parseInt(num/pageSize)){     
            totalPage=parseInt(num/pageSize)+1;     
       }else{     
           totalPage=parseInt(num/pageSize);     
       }     
    var currentPage = pno;//当前页数  
    currentPage_=currentPage;  
    var startRow = (currentPage - 1) * pageSize+1;   
    var endRow = currentPage * pageSize;  
        endRow = (endRow > num)? num : endRow;      
       //遍历显示数据实现分页  
    for(var i=1;i<(num+1);i++){      
        var irow = itable.rows[i-1];  
        if(i>=startRow && i<=endRow){  
            irow.style.display = "";      
        }else{  
            irow.style.display = "none";  
        }  
    }  
    var tempStr = "共"+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");  
    }     
    var tempOption="";  
    for(var i=1;i<=totalPage;i++)  
    {  
        tempOption+='<option value='+i+'>'+i+'</option>'  
    }  
    $("#jumpWhere").html(tempOption);  
    $("#jumpWhere").val(currentPage);  
}  
  
  
function jumpPage()  
{  
    var num=parseInt($("#jumpWhere").val());  
    console.log(pageSize);  
    if(num!=currentPage_)  
    {  
        goPage(num,pageSize);  
    }  
}  
  
</script>  
</body>   
</html>  


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue前端分页可以通过以下步骤实现: 1. 在Vue组件中定义一个数组,用于存放所有数据。 2. 定义一个变量,用于存放每页显示的数据数。 3. 定义一个变量,用于存放当前页码。 4. 定义一个计算属性,用于计算总页数。 5. 定义一个方法,用于获取当前页的数据。 6. 在页面中显示当前页的数据。 7. 定义上一页和下一页的方法,用于切换页码。 8. 在页面中显示分页组件,包括上一页、下一页、页码等。 以下是一个简单的示例代码: ```html <template> <div> <ul> <li v-for="item in currentPageData">{{ item }}</li> </ul> <div> <button @click="prevPage">上一页</button> <span>{{ currentPage }}/{{ totalPages }}</span> <button @click="nextPage">下一页</button> </div> </div> </template> <script> export default { data() { return { dataList: ['数据1', '数据2', '数据3', '数据4', '数据5', '数据6', '数据7', '数据8', '数据9', '数据10'], pageSize: 3, currentPage: 1 } }, computed: { totalPages() { return Math.ceil(this.dataList.length / this.pageSize) }, currentPageData() { const start = (this.currentPage - 1) * this.pageSize const end = start + this.pageSize return this.dataList.slice(start, end) } }, methods: { prevPage() { if (this.currentPage > 1) { this.currentPage-- } }, nextPage() { if (this.currentPage < this.totalPages) { this.currentPage++ } } } } </script> ``` 在这个例子中,我们通过计算属性`totalPages`计算出总页数,然后通过方法`currentPageData`获取当前页的数据。通过按钮调用方法`prevPage`和`nextPage`来切换页码。在页面中,我们显示当前页的数据,并显示上一页、下一页和页码等信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伏特加的滋味

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值