千家信息网

Vue.js+bootstrap前端怎么实现分页和排序

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章主要介绍"Vue.js+bootstrap前端怎么实现分页和排序"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Vue.js+bootstrap前端怎么
千家信息网最后更新 2025年02月05日Vue.js+bootstrap前端怎么实现分页和排序

这篇文章主要介绍"Vue.js+bootstrap前端怎么实现分页和排序"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Vue.js+bootstrap前端怎么实现分页和排序"文章能帮助大家解决问题。

效果图:

语法:

数据绑定 {{...}}或者v-model

{{dataItem.id}}

事件绑定 v-on

ID

循环 v-for

判断 v-if

首页

过滤器 Vue.filter

//定义Vue.filter( 'name' , function(value) {  return value * .5 ; });//使用{{dataItem.age | name}}

排序orderBy

  {{dataItem.id}}  {{dataItem.name}}  {{dataItem.age}}

html

ID 姓名 年龄
{{dataItem.id}} {{dataItem.name}} {{dataItem.age}}
{{pageCurrent}}/{{pageCount}}

javascript

 //只能输入正整数过滤器  Vue.filter('onlyNumeric', {   // model -> view   // 在更新 `` 元素之前格式化值   read: function (val) {    return val;   },   // view -> model   // 在写回数据之前格式化值   write: function (val, oldVal) {    var number = +val.replace(/[^\d]/g, '')    return isNaN(number) ? 1 : parseFloat(number.toFixed(2))   }  })  //模拟获取数据  var getData=function(){   var result = [];   for (var i = 0; i < 500; i++) {    result[i] ={name:'test'+i,id:i,age:(Math.random()*100).toFixed()};    }   return result;  }  var vue = new Vue({   el: "#test",   //加载完成后执行   ready:function(){    this.arrayDataAll = getData();    this.totalCount = this.arrayDataAll.length;    this.showPage(this.pageCurrent, null, true);   },   data: {    //总项目数    totalCount: 200,    //分页数    arrPageSize:[10,20,30,40],    //当前分页数    pageCount: 20,    //当前页面    pageCurrent: 1,    //分页大小    pagesize: 10,    //显示分页按钮数    showPages: 11,    //开始显示的分页按钮    showPagesStart: 1,    //结束显示的分页按钮    showPageEnd: 100,    //所有数据    arrayDataAll:[],    //分页数据    arrayData: [],    //排序字段    sortparam:"",    //排序方式    sorttype:1,   },   methods: {    //分页方法    showPage: function (pageIndex, $event, forceRefresh) {     if (pageIndex > 0) {      if (pageIndex > this.pageCount) {       pageIndex = this.pageCount;      }      //判断数据是否需要更新      var currentPageCount = Math.ceil(this.totalCount / this.pagesize);      if (currentPageCount != this.pageCount) {       pageIndex = 1;       this.pageCount = currentPageCount;      }      else if (this.pageCurrent == pageIndex && currentPageCount == this.pageCount && typeof (forceRefresh) == "undefined") {       console.log("not refresh");       return;      }      //处理分页点中样式      var buttons = $("#pager").find("span");      for (var i = 0; i < buttons.length; i++) {       if (buttons.eq(i).html() != pageIndex) {        buttons.eq(i).removeClass("active");       }       else {        buttons.eq(i).addClass("active");       }      }      //从所有数据中取分页数据      var newPageInfo = [];      for (var i = 0; i < this.pagesize; i++) {      var index =i+(pageIndex-1)*this.pagesize;      if(index>this.totalCount-1)break;       newPageInfo[newPageInfo.length] = this.arrayDataAll[index];      }      this.pageCurrent = pageIndex;      this.arrayData = newPageInfo;      //计算分页按钮数据      if (this.pageCount > this.showPages) {       if (pageIndex <= (this.showPages - 1) / 2) {        this.showPagesStart = 1;        this.showPageEnd = this.showPages - 1;        console.log("showPage1")       }       else if (pageIndex >= this.pageCount - (this.showPages - 3) / 2) {        this.showPagesStart = this.pageCount - this.showPages + 2;        this.showPageEnd = this.pageCount;        console.log("showPage2")       }       else {        console.log("showPage3")        this.showPagesStart = pageIndex - (this.showPages - 3) / 2;        this.showPageEnd = pageIndex + (this.showPages - 3) / 2;       }      }     }     //排序    },sortBy: function (sortparam) {     this.sortparam = sortparam;     this.sorttype = this.sorttype == -1 ? 1 : -1;    }   }  });

关于"Vue.js+bootstrap前端怎么实现分页和排序"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0