vue_前端分页操作

<template>   <div>      <template>         <el-table            :data="currentPageData.filter(data => !search || data.name.toLowerCase().includes(search.toLowerCase()))"            style="width: 100%;line-height: 50px;">            <el-table-column               label="ID"               prop="filmId">            </el-table-column>

            <el-table-column               label="预览图"               prop="imageId">            </el-table-column>

            <el-table-column               label="电影名称"               prop="filmName">            </el-table-column>

            <el-table-column               label="导演"               prop="director">            </el-table-column>

            <el-table-column               label="电影时长(分)"               prop="duration">            </el-table-column>

            <el-table-column               label="电影价格(元)"               prop="price">            </el-table-column>

            <el-table-column               label="上映时间"               prop="date">            </el-table-column>

            <el-table-column               align="right">               <template slot="header" slot-scope="scope">                  <el-input                     v-model="search"                     size="small"                     placeholder="搜索"></el-input>               </template>               <template slot-scope="scope">                  <el-button type="primary" round                           size="small "                           @click="handleEdit(scope.$index, scope.row)">编辑                  </el-button>                  <el-button type="danger" round                           size="small "                           @click="handleDelete(scope.$index, scope.row)">删除                  </el-button>               </template>            </el-table-column>         </el-table>      </template>      <!--分页代码-->      <div class="block">

         <!--<el-select v-model="pageSize" placeholder="每页显示" size="mini" style="width: 120px" @blur="show(pageSize)">            <el-option>5条</el-option>            <el-option>10条</el-option>            <el-option>15条</el-option>            <el-option>20条</el-option>         </el-select>-->

         <el-button type="primary" size="mini" @click="prevPage()">            上一页         </el-button>         <span>第{{currentPage}}页/共{{totalPage}}页</span>         <el-button type="primary" size="mini" @click="nextPage()">            下一页         </el-button>         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;         <a>共<i>{{totalPage}}</i>页</a>         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;         <el-button type="info" size="mini" @click="turn(currentPage)">跳转至</el-button><a>第</a>         <label><input type="text" style="width: 30px;" v-model="currentPage" @keyup.enter="turn(currentPage)"></label><a>页</a>

      </div>

   </div></template>

<script>    export default {        name: ‘FilmManage‘,        data () {            return {                search: ‘‘,                tableData: [],  //所有数据                totalPage: 0, // 统共页数,默认为1                currentPage: 1, //当前页数 ,默认为1                pageSize: 7, // 每页显示数量                currentPageData: [] //当前页显示内容             }        },        components: {},        mounted(){},        created: function () {            var arr = this            arr.axios.get(‘film/listFilm‘)                .then((response) => {                    console.log(response.data)//请求的返回体                    arr.tableData = response.data                })                .catch((error) => {                    console.log(error)//异常                })            arr.axios.get(‘film/count‘)                .then((response) => {                    console.log(response.data)//请求的返回体                    // 计算一共有几页                    this.totalPage = Math.ceil(response.data/this.pageSize);                    console.log(this.totalPage)

                    this.getCurrentPageData();                })                .catch((error) => {                    console.log(error)//异常                })

        },

        methods: {            /*编辑和删除*/            handleEdit (index, row) {                console.log(index, row)            },            handleDelete (index, row) {                console.log(index, row)            },            /*分页操作*/            // 设置当前页面数据,对数组操作的截取规则为[0~9],[10~20]...,            // 当currentPage为1时,我们显示(0*pageSize+1)-1*pageSize,当currentPage为2时,我们显示(1*pageSize+1)-2*pageSize...            getCurrentPageData() {                let begin = (this.currentPage - 1) * this.pageSize;                let end = this.currentPage * this.pageSize;                this.currentPageData = this.tableData.slice(                    begin,                    end                );            },            //上一页            prevPage() {                console.log(this.currentPage);                if (this.currentPage === 1) {                    return false;                } else {                    this.currentPage--;                    this.getCurrentPageData();                }            },            // 下一页            nextPage() {                if (this.currentPage === this.totalPage) {                    return false;                } else {                    this.currentPage++;                    this.getCurrentPageData();                }            },         /*跳转*/            turn(currentPage) {                let begin = (currentPage - 1) * this.pageSize;                let end = currentPage * this.pageSize;                this.currentPageData = this.tableData.slice(                    begin,                    end                );            },            /*每页显示*/            show(size) {                let begin = (this.currentPage - 1) * size;                let end = this.currentPage * size;                this.currentPageData = this.tableData.slice(                    begin,                    end                );            },        },    }</script>

<style scoped>

</style>

原文地址:https://www.cnblogs.com/zwq20134/p/11703563.html

时间: 2024-10-16 04:57:32

vue_前端分页操作的相关文章

超简单实用的前端分页---jquery插件

首先,谈谈分页,目前我所了解的分页有两种,前端分页跟后台分页. 简单说说前端分页.是通过前端技术拿到所有的数据,在前端分页处理; 而后台分页是通过前端操作,给后台返回不同的值,再由后台返回所对应的数据. 最近,下载了很多前端分页插件.感觉性价比不是模糊不清,就是显示不是自己想要的,所以想自己动手写一个属于自己的插件 这是一个面向对象思想的插件.第一次用面向对象的思想,肯定有很多不足的地方.希望能互相讨论,一起上进. 这是效果图.看起来一般,但是他的css可重塑性高 接下来将附上自己的代码. cs

js 前端分页空间控件

现在web注重用户体验与交互性,ajax 提交数据的方式很早就流行了,它能够在不刷新网页的情况下局部刷新数据.前端分页多是用ajax请求数据(其他方式也有比如手动构造表单模拟提交事件等).通过js将查询参数构造好发向后台,后台处理后以特定的格式返回,多为json,比较流行处理起来也很方便.当后台数据到达后,浏览器重新渲染界面当然也包括js分页控件,如果觉得每次绘制分页控件对前端性能有影响也可以不绘制,但实现起来相对麻烦. 本人写的分页控件参考了其他网友的代码,链接忘了,控件接受四个参数或一个对象

jQuery插件实例六:jQuery 前端分页

先来看看效果: 对于前端分页,关键是思路,和分页算法.本想多说两句,可又觉得没什么可说的,看代码吧: 如何使用? $("#pging").zPagination({ 'navEvent':function(){ console.log('取数据Ajax'); } }); JS代码 //分页Pagination ; (function ($, window) { var defaults = { rowCount: 400, //总数据行数 navPage: 10, //每次显示多少页导

前端分页(输入页号)

$('#submitgo').click(function(){        if($('#fillNum').val()!=''){ var u = location.href.toString(); if(u.indexOf('page') >=0){                var url=replaceParamVal('page',$('#fillNum').val());                location.href=url;            }else{

分页操作

进行网页开发,那么就少不了分页查询.分页查询在mysql中是最方便的,使用mysql的关键字LIMIT(mysql独有),即可进行分页查询.如下是mysql的分页查询的sql语句: SELECT * FROM hero LIMIT ?, ? # 第一个?表示的是从那条数据开始查询 # 第二个?表示的是每次查询的数据的条数 而在Oracle中也有一个方言,专门用来Oracle数据库的分页查询,关键字为:ROWNUM 和 row_number() 下面使用mysql演示分页: jsp页面: <%@

vue中的分页操作

首先,先看分页的代码: 这里还需要进行操作: 1.分页操作主要传递俩个数据,total和pagenum,一个显示当前页面共有多少条数据,一个是翻页后的操作,看列表的数据能不能跟着改变,在进页面发送请求数据列表的时候,就给total赋值. 2.分页的时候,执行的函数,必须传当前页数这个字段,然后在此处再给total赋值,

前端分页插件pagination

摘要: 最近在开发项目中又用到了前端分页,以前也做过,为了方便以后使用所以将他封装成第三方插件,不依赖任何库.网上已经有很多插件,问什么还要自己造轮子? 自己写的扩展性高 不依赖任何库 作为一次技术沉淀 在线预览:http://baixuexiyang.github.io/pagination/ 项目地址:https://github.com/baixuexiyang/pagination 注意: 后面我还要将自己在开发中写到的插件都总结下分享给大家,如果你喜欢用可以star或者fork,或者你

Extjs中grid前端分页使用PagingMemoryProxy【二】

    在项目中遇到Grid前端分页,本人也是刚接触extjs没多久,为了实现效果,一直找了很久才实现出来,对于代码中的一些也不能详细的说明出来, 不知道能不能帮助到遇到同样问题的朋友,所以将例子代码贴出来大家一起相互学习下. 在项目中时常会用到前端分页的效果,使用grid来进行分页, 在源代码中\examples\ux\data\PagingMemoryProxy.js,此时要使用该js文件,在项目引用该文件. <script type="text/javascript" sr

锋利的js前端分页之jQuery

原文:锋利的js前端分页之jQuery 大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现. 调用pager方法,输入参数,会返回一个导航条的html字符串.方法的内部比较简单. 1 /** 2 * pageSize, 每页显示数 3 * pageIndex, 当前页数 4 * pageCount 总页数 5 * url 连接地址 6 * pager(10, 1, 5, 'Index')使用方法示例 7 */ 8 function pager(pageSize