vue前端模拟简单的分页

<Table border :columns="fieldColumns" :data="fieldData2" height='500'></Table><!--表格自己写,这里暂时用iview的表格模拟一下-->
       <!--分页-->
       <div class="result-foot">
           <ul class="ul" style="">
              <!--上一页-->
              <li class="disabled" v-if="pageindex == 1"><a href="javascript:;"><</a></li>
              <li v-else v-on:click="LoadData(pageindex-1)"><a href="javascript:;" ><</a></li>      
              <!--页码-->
              <li v-for="n in totalpages" v-bind:class="pageindex == n ? 'active':''" v-on:click="LoadData(n)">
                   <a href="#"  v-text="n"></a>
              </li>
              <!--下一页-->
              <li class="disabled" v-if="pageindex == totalpages || totalpages == 0"><a href="javascript:;">></a></li>
              <li  v-else v-on:click="LoadData(pageindex+1)"><a href="javascript:;" >></a></li>                              
            </ul>
         </div>

data中定义

fieldColumns:[],//列表表头
fieldData:[],//接收后端的所有数据
total:0,//获取后端的数据总条数
pagesize:10,//一页显示10条
pageindex:1,//当前页
fieldData2:[]//前端模拟后每一页显示的数据


computed: {
       totalpages: function () {//总页数
            return Math.ceil(this.total * 1 / this.pagesize);
       }
 },

获取后端数据,并调用前端分页方法

getData(){
      axios.get(this.GLOBAL.API_datasource+"datasource/"+id+"/sql/field").then(res=>{
           if(res.data.retCode == "200"){
               this.fieldData = res.data.data;//从后端接收所有的数据
               this.total= res.data.data.length;//前端加分页————获取数据总条数
               this.LoadData(1);//前端加分页————加载第一个数据
           }else{
               alert(res.data.message) 
           }  
      })
}
//前端加分页调用的方法
LoadData(value){
    this.pageindex=value
    this.fieldData2=this.fieldData.slice((value-1)*10,value*10)
    console.log('总页数:',this.totalpages)
    console.log('截取的数据:',this.fieldData2)
    console.log('当前页:',value)
 }

css样式

<style>
.result-foot{float:right;}
.active {background:#2d8cf0;}
.active a{color:#fff !important;}
.ul {list-style:none;margin:20px;} 
.ul li {float:left;line-height:28px;width:30px;border:1px solid #ccc;border-radius: 4px;height:30px;text-align:center;margin:5px}
.ul li.disabled{color:#333} 
.ul li a{color:#333} 
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值