element表格table前端对全部数据进行排序

vue中使用element ui中的Table实现对全部数据进行排序_Alisane的博客-CSDN博客

element表格在前端对全部数据进行排序_ydongabc-CSDN博客_element 前端排序

1.对全部数据进行排序,需要对el-table绑定sort-change监听

<el-table :data='tableData' @sort-change='sortChange'>

2.列中设置属性sortable=“custom”

<el-table-column prop="time" sortable="custom" label="时间"></el-table-column>

 3.js实现排序功能 

data() {
    return {
      tableData: [], // 数据列表
      currpage: 1, //当前页码
      proptype: "" //存放column.prop的字符串值
    };
sortChange(column) {
      //打印看看参数有哪些?
      console.log("排序", column.prop, column.order);
      this.currpage = 1; // 排序后返回第一页
      this.proptype = column.prop; // 将键名prop赋值给变量proptype
      this.tableData = this.tableData.sort(
        this.SortFun(column.prop, column.order === "descending")
      );
      /* if (column.order === "descending") {
        //大到小
        this.tableData = this.tableData.sort(this.SortFun(column.prop, 1)); //从大到小
      } else if (column.order === "ascending") {
        this.tableData = this.tableData.sort(this.SortFun(column.prop, -1)); //从小到大
      } */
},

SortFun(attr, rev) {
      //第一个参数传入info里的prop表示排的是哪一列,第二个参数是升还是降排序
      if (rev == undefined) {
        rev = 1;
      } else {
        rev = rev ? 1 : -1;
        //rev = rev>0 ? 1 : -1;
      }
      return function (a, b) {
        a = a[attr];
        b = b[attr];
        if (a < b) {
          return rev * -1;
        }
        if (a > b) {
          return rev * 1;
        }
        return 0;
      };
    },

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Vue 和 Element UI 中,实现前端表格分页可以遵循以下步骤: 1. 将表格数据存储在一个数组中,例如 tableData。 2. 定义每页显示的数据量,例如 pageSize。 3. 定义当前页码,例如 currentPage。 4. 根据 pageSize 和 currentPage 来计算当前页应该显示的数据,例如: ``` const start = (currentPage - 1) * pageSize; const end = start + pageSize; const pageData = tableData.slice(start, end); ``` 5. 将 pageData 显示在表格中。 6. 在表格下方添加分页组件,使用 Element UI 的 el-pagination 组件即可。将 total 属性设为 tableData.length,pageSize 属性设为 pageSize,v-model 绑定 currentPage。 完整代码示例: ``` <template> <div> <el-table :data="pageData"> <!-- 表格列 --> </el-table> <el-pagination :current-page="currentPage" :page-size="pageSize" :total="tableData.length" @current-change="handleCurrentChange" /> </div> </template> <script> export default { data() { return { tableData: [], // 表格数据 pageSize: 10, // 每页显示的数据量 currentPage: 1, // 当前页码 }; }, computed: { pageData() { const start = (this.currentPage - 1) * this.pageSize; const end = start + this.pageSize; return this.tableData.slice(start, end); }, }, methods: { handleCurrentChange(currentPage) { this.currentPage = currentPage; }, }, }; </script> ``` 这样就可以实现基本的前端表格分页了。如果需要支持排序、筛选等功能,可以在计算 pageData 的时候加入对应的代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值