el-pagination 动态切换每页条数、页数切换

这篇具有很好参考价值的文章主要介绍了el-pagination 动态切换每页条数、页数切换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

业务场景

官方链接

实现效果

使用框架

代码展示

template代码

script代码

变量定义

事件定义

        handleSizeChange事件--实现每页条数改变表格动态变化

        handleCurrentChange事件--切换页码

        css代码

完整代码

总结


业务场景

当表格中的数据量如果非常庞大的时候我们不可能让数据整个全部一下展示出来,导致用户需要无限的往下滚动鼠标,给用户造成不清楚到底有多少数据的一个现象,让用户产生看不到头的焦躁心理。这时候我们可以借助分页器去实现数据的分页效果,根据页数和每页条数去实现真分页。

这个在项目中是经常使用到的一种场景,今天我来分享分享我们具体的实现和需要注意的一些点

官方链接

Pagination 分页:Pagination 分页 | Element Plus

实现效果

这篇博客要实现的是课程和班级的一个绑定关系,当页面加载之后给课程和班级下拉框一个默认值,通过切换课程班级下拉框中的选项之后班级下拉框中的选项也随之变换成,当前选中课程下的所有班级名

el-pagination,【VUE】,javascript,前端,vue.js

使用框架

Vue3+element-plus(1.2.0-beta.5)

流程

动态切换每页条数:

  • 在el-pagination组件上绑定一个变量,例如pageSize,用于表示每页显示的条数。
  • 使用@change事件监听每页条数的变化,当每页条数改变时,触发相应的方法。
  • 在方法中,更新pageSize变量的值,并重新获取数据。

动态切换每页条数:

  • 在el-pagination组件上绑定一个变量,例如pageSize,用于表示每页显示的条数。
  • 使用@change事件监听每页条数的变化,当每页条数改变时,触发相应的方法。
  • 在方法中,更新pageSize变量的值,并重新获取数据。

el-pagination,【VUE】,javascript,前端,vue.js

 

代码展示

说明:在本篇博客中我重点分享分页器的时候,关于el-table表格可以参考这篇博客:el-table 列的动态显示与隐藏_吃豆子的恐龙的博客-CSDN博客

template代码

<!-- 分页器 -->
<div class="demo-pagination-block">
    <span class="demo-pagination-block allTotal">共{{ total }}条</span>
    <el-config-provider :locale="locale">
      <el-pagination
        :total="total"
        v-model:current-page="currentPage"
        v-model:page-size="pageSize"
        :page-sizes="[30, 50, 100]"
        :small="small"
        :disabled="disabled"
        :background="background"
        layout="sizes, prev, pager, next"
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
      />
    </el-config-provider>
</div>

script代码

变量定义

var total = ref(0); //总条数

// 当前页数
const currentPage = ref(1);

//每页显示条目个数
const pageSize = ref(30);

//是否使用小型分页样式
const small = ref(false);

//是否为分页按钮添加背景色
const background = ref(false);

//是否禁用分页
const disabled = ref(false);

事件定义

handleSizeChange事件--实现每页条数改变表格动态变化

//每页显示条数改变
const handleSizeChange = (val) => {
      searchContent.value = "";
      pageSize.value = val;
      currentPage.value = currentPage.value;    
};

handleCurrentChange事件--切换页码

 //当前页变动
    const handleCurrentChange = (val) => {
      pageSize.value = pageSize.value;
      currentPage.value = val;
      studentData(classID.value, courseID.value, currentPage.value, pageSize.value);
    };

css代码

.demo-pagination-block {
  display: inline-block;
  position: relative;
}

.allTotal {
  position: absolute;
  left: -4em;
  top: 7px;
  color: #606266;
  font-size: 14px;
}

完整代码

<template>
    <!-- 分页器 -->
    <div class="demo-pagination-block">
        <span class="demo-pagination-block allTotal">共{{ total }}条</span>
        <el-config-provider :locale="locale">
          <el-pagination
            :total="total"
            v-model:current-page="currentPage"
            v-model:page-size="pageSize"
            :page-sizes="[30, 50, 100]"
            :small="small"
            :disabled="disabled"
            :background="background"
            layout="sizes, prev, pager, next"
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
          />
        </el-config-provider>
    </div>
</template>

<script>
import { reactive, ref, onMounted } from "vue";

export default {
  components: {
  },
  setup() {
	//总条数
    var total = ref(0); 

    // 当前页数
    const currentPage = ref(1);
    
    //每页显示条目个数
    const pageSize = ref(30);
    
    //是否使用小型分页样式
    const small = ref(false);
    
    //是否为分页按钮添加背景色
    const background = ref(false);
    
    //是否禁用分页
    const disabled = ref(false);
      
	//每页显示条数改变
	const handleSizeChange = (val) => {
          searchContent.value = "";
          pageSize.value = val;
          currentPage.value = currentPage.value;    
	};


 	//当前页变动
    const handleCurrentChange = (val) => {
          pageSize.value = pageSize.value;
          currentPage.value = val;
          studentData(classID.value, courseID.value, currentPage.value, pageSize.value);
    };


    return {
      total,
        currentPage,
        pageSize,
        small,
        background,
    	disabled,
        handleSizeChange,
        handleCurrentChange,
    };
  },
};
</script>

<style>
    .demo-pagination-block {
      display: inline-block;
      position: relative;
    }
    
    .allTotal {
      position: absolute;
      left: -4em;
      top: 7px;
      color: #606266;
      font-size: 14px;
}

</style>

关于当前页面的实现可以参考如下博客:

el-table:el-table 列的动态显示与隐藏_吃豆子的恐龙的博客-CSDN博客

el-Dropdown:http://t.csdn.cn/jFp2f

总结

多看官方文档,我们遇到的很多问题其实文档中都有详细说明!文章来源地址https://www.toymoban.com/news/detail-631223.html

如果有想要交流的内容欢迎在评论区进行留言,如果这篇文档受到了您的喜欢那就留下你点赞收藏脚印支持一下博主~

到了这里,关于el-pagination 动态切换每页条数、页数切换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui 切换分页条数,触发两次请求-bug记录, 分页组件封装

    前言介绍: 以组件完整功能为例需要配置的参数为current-page、page-sizes、page-size、total: current-page,文档所指为当前页数;显示当前数据所拥有页数 page-sizes,文档所指为每页显示个数选择器的选项设置;对当前页数据显示个数进行配置(以数组形式进行配置,例:[10, 20, 30,

    2024年02月08日
    浏览(33)
  • 【UI】elementui el-pagination分页位置靠右

    分页如何实现下面效果,位置靠右 以前都是align=“right”, 但是饿了么更新版本后将这个方法弃用了 跳转element-ui element-ui官网 ,分页的基础用法明确指出 -后的元素会靠右显示 ,也就是说 这个箭头符放在哪的前面,那后面的元素就会靠右 , 想要所有元素靠右的话,就将它放

    2024年02月11日
    浏览(26)
  • el-pagination 组件数据持久化,缓存当前页面数据

    vue 文件演示: 一般在 handleCurrentChange ,即 @current-change 事件中缓存当前的页面页码数据 缓存的方法有: window.localStorage 、 sessionStorage 提示: 如果你只想将数据保存在当前会话中,可以使用 sessionStorage 属性, 该数据对象临时保存同一窗口(或标签页)的数据,在关闭窗口或标签

    2024年02月13日
    浏览(48)
  • 前端实现el-pagination分页组件纯前端分页使用方法

    又是被后端欺负的一天,做了个公司的老项目,表格分页后端没法做,那就只能前端来完成。这里我介绍两种方法,需要的自提。 1、表格数据 2、分页定义属性 3、分页逻辑处理 4、初始化调用 1、表格数据处理 2、分页表格处理 3、分页定义属性 4、分页逻辑处理 两种方法都

    2024年02月15日
    浏览(31)
  • Element-ui Pagination 分页使用:切换页数以及选择每页个数table没有反应

    最近在练手vue2.0 +  element-ui项目,在组合使用element分页器和table的时候遇到一点问题,由于练手项目所以后端仅提供table数据,并未进行分页处理,所以对table数据的分页使用了前端处理方式,即获取所有table数据后在前端处理数据实现分页。 分页器视图部分,这里注意 !!

    2024年02月15日
    浏览(24)
  • vue3 基于element plus对el-pagination进行二次封装

    在vue3项目中,如果每个列表页都敲一遍分页方法,显然是不合理的,那么,下面我将基于element plus对el-pagination进行二次封装,使用vue3语法糖格式,废话不多说,开干。

    2024年02月12日
    浏览(31)
  • 前端开发之Element Plus的分页组件el-pagination显示英文转变为中文

    在使用element的时候分页提示语句是中文的到了element-plus中式英文的,本文讲解的就是怎样将英文转变为中文 如果你的element-plus版本为2.2.29以下的 如果你的element-plus版本为2.2.29以上的

    2024年02月11日
    浏览(30)
  • ElementPlusError:[ElPagination] 你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档

    💂 个人网站: 【紫陌】【笔记分享网】 💅 想寻找共同学习交流、共同成长的伙伴, 请点击【前端学习交流群】 今天在做项目的时候突然发现控制台有一个警告但是不影响使用,之前还没有的,今天竟然出现。我就怀着好奇看看到底是什么问题。我用的是ElementPlus。 控制台

    2023年04月20日
    浏览(26)
  • Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页

    Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页:         当table的数据量比较大的时候,一个屏幕展示不出全部的数据,这个时候就需要分页显示。而多数情况下都是做的后端分页,就是将分页参数和查询条件一并传到后端,后端将当前页要

    2024年01月20日
    浏览(39)
  • 如何使用element-ui相关组件如:el-select,el-table,el-switch,el-pagination,el-dialog

    element-ui 官方链接: 组件 | Element https://element.eleme.cn/#/zh-CN/component/installation userTypeOptions后端响应的对象数组数据 表格中添加模板的作用域实现 异步处理 监听status的状态 权限修改异步处理: 几个监听函数与异步请求 axios实现发送异步请求 监听弹窗

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包