vue 表格 vxe-table 高亮行支持取消操作

在使用 vxe-table 表格组件时,默认情况下,当用户点击某一行时,该行会高亮显示(即成为当前行),并且无法通过再次点击来取消高亮。这种交互适用于需要始终选中一行的场景。

但在某些业务场景下,可能需要允许用户取消选中当前高亮的行(例如,允许不选中任何行)。vxe-table 提供了灵活的配置来实现这一需求

实现方式

通过设置 current-row-config.strict 参数为 false,即可允许取消当前高亮行的选中状态。当 strict 为 true(默认值)时,表格会强制始终存在一个高亮行;设置为 false 后,用户可以通过再次点击已高亮的行来取消高亮。

代码

html 复制代码
<template>
  <div>
    <vxe-grid v-bind="gridOptions" v-on="gridEvents"></vxe-grid>
  </div>
</template>

<script setup>
import { reactive } from 'vue'

const gridOptions = reactive({
  height: 300,
  rowConfig: {
    isCurrent: true,
    isHover: true
  },
  currentRowConfig: {
    strict: false
  },
  columns: [
    { type: 'seq', width: 70 },
    { field: 'name', title: 'Name' },
    { field: 'sex', title: 'Sex' },
    { field: 'age', title: 'Age' },
    { field: 'address', title: 'Address', showOverflow: true }
  ],
  data: [
    { name: 'Test1', role: 'Develop', sex: 'Man', age: 28, content: 'test abc' },
    { name: 'Test2', role: 'Test', sex: 'Women', age: 41, content: 'Guangzhou' },
    { name: 'Test3', role: 'PM', sex: 'Man', age: 32, content: 'Shanghai' },
    { name: 'Test4', role: 'Designer', sex: 'Women', age: 24, content: 'Shanghai' }
  ]
})

const gridEvents = {
  currentRowChange ({ row, oldValue, newValue }) {
    console.log(`行选中事件 ${row.name} 旧:`, oldValue, '新:', newValue)
  }
}
</script>

参数说明

  • rowConfig.isCurrent:启用当前行高亮(即选中标记)。
    • currentRowConfig.strict:是否强制保持一个当前行。true(默认):始终有一个高亮行,无法取消选中。false:允许通过再次点击已高亮行来取消选中,此时表格可以没有任何高亮行。

当 strict: false 时,currentRowChange 事件的 row 参数在取消选中时为 null,可根据此判断是否已无选中行。

https://vxetable.cn

相关推荐
tryCbest4 小时前
Vue3——第 17 篇:模板引用(ref)与组件实例——操作 DOM 的正确姿势
vue.js·前端搭建
头发还在的女程序员5 小时前
Java在线租房系统源码解析:Spring Boot+Vue 3+UniApp房源管理与预约看房方案
java·vue.js·spring boot·租房小程序·租房系统·租房软件
FYKJ_20105 小时前
springboot同人周边订单管理系统48955-计算机毕业设计、课程设计
java·javascript·vue.js·spring boot·django·php·课程设计
梯度下降者14 小时前
Nuxt框架
vue.js·服务端渲染·全栈开发·混合渲染·nuxt框架
yuyuxun11 天前
协同过滤的校园二手物品智能推荐系统的设计与实现 毕业设计-附源码40082
javascript·vue.js·spring boot·python·数据分析·django·课程设计
FungLeo1 天前
成为全栈·Vue 管理后台篇·编辑器图片上传:从文件选择到文章附件关联
前端·vue.js·编辑器·markdown·文件上传·formdata·附件管理
码云社区1 天前
智慧物业系统选型指南:房屋档案、账单管理与报修协作
前端·javascript·vue.js·智慧物业
ruanno_top2 天前
表单重置后,验证码还显示已通过:Vue 受控组件的 3 种假同步
vue.js
ruanno_top2 天前
给标签页加 roving tabindex,整组反而键盘进不去了
vue.js
仨孩子的爹2 天前
CSS打印样式:字体族与行高在纸上的对照实测
vue.js