vue的el-table实现字段排序功能

在vue的开发过程中,我们有些功能是需要实现根据相关字段,如创建事件先后对角色进行排序。而且查询到的字段都放入到el-table中进行展示。这个时候有两种排序的方式。如下所示

页面排序【服务器不参与】

vue从服务器中查询到相关的数据用于页面的暂时如果只是将查询到的页面进行排序,这个时候我们可以使用如下方法。

在对应的需要排序的字段中使用sortable即可

<el-table-column
   prop="date"
   label="注册时间"
   sortable  // 在需要排序的字段中,添加sortable,就可以在前端实现当前页中的排序
   :default-sort="{prop: 'date', order: 'ascending'}"  //default-sort指定的默认排序,默认用date这一列排序,排序为升序,默认的排序也是升序
      >  
</el-table-column>

这样即可对vue页面进行排序了。

页面排序【需服务器参与】

而对于有些排序是需要对服务器中的所有数据进行排序,而不是只是刚刚从页面请求返回的部分数据进行排序的情况下,这个时候就需要页面重新从服务器中将数据load到页面中了。

方法如下

在el-table 中定义一个排序的请求的方法,这个方法是重新在服务器中load数据的方法,这里定义排序的字段以及升降序。

<el-table
   :data="dataList" 
   style="width: 100%
   @sort-change="onSortChange">  //onSortChange为排序发生改变时调用的方法
</el-table>

在methods方法中增加上面的方法如下

onSortChange(column) {
      console.log(column + '开始排序')
      this.initTable.query.sort = column.prop
      this.initTable.query.sortType = column.order
      this.getTableList()
    }

最后就是将需要自定义排序的字段增加排序字段

{ prop: 'createTime', label: '注册时间', sortable: 'custom' },
{ prop: 'playerLevel', label: '角色等级', sortable: 'custom'},

总结

上面就是在vue中实现排序的两种方法,希望对大家有所有帮助

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Vueel-table组件提供了数据排序的功能,可以通过设置column的sortable属性来开启排序功能。当用户点击表头时,会触发表格的排序事件,此时可以获取到当前排序的列和排序的方式(升序或降序),可以将这些信息发送给后台,后台再根据这些信息返回排序过后的数据。 具体实现可以参考以下步骤: 1. 在el-table-column中设置sortable属性为true,表示该列可以排序。 2. 监听el-table的sort-change事件,获取当前排序的列和排序的方式。 3. 将获取到的排序信息发送给后台,后台根据这些信息返回排序过后的数据。 4. 将返回的数据更新到el-table中,即可实现数据排序。 举个例子,假设我们有一个学生选课系统,使用Vueel-table组件展示选课记录,我们可以按照选课时间、课程名称等字段进行排序。具体实现可以参考以下代码: ``` <template> <el-table :data="tableData" @sort-change="handleSortChange"> <el-table-column prop="courseName" label="课程名称" sortable></el-table-column> <el-table-column prop="selectTime" label="选课时间" sortable></el-table-column> <el-table-column prop="teacherName" label="授课教师"></el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [] } }, methods: { handleSortChange({ column, prop, order }) { // 发送排序信息给后台 this.$axios.post('/api/sort', { column, prop, order }).then(res => { // 更新表格数据 this.tableData = res.data }) } } } </script> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值