vue项目中 elementUI 中表格多选框默认选中,但没有效果问题

在Vue项目中使用ElementUI的el-table组件时,遇到多选框默认选中但实际无效果的问题。通过分析,发现初始代码中存在配置错误。通过对this.enableLists设置为要勾选的数组,并正确绑定到selectTable中,确保表格包含勾选数组,成功解决了选中无效果的问题。

按官网上的 table表格中的多选
在这里插入图片描述
一开始我的代码是这样的:

this.enabelLists.forEach(row => {
   this.$refs.selectTable.toggleRowSelection(row, true)
})

其中 this.enabelLists 是我要勾选的数组
selectTable 要绑定在你要出现这个勾选数组的表格中,你的表格必须包含勾选数组。

如果在自己的vue项目中,没有效果,那是对的。因为你的表格是你请求数据渲染出来的,可能那时候你的表格还没完全渲染完。所以要借用$nextTick

修改之后的代码如下:

this.$nextTick(() => {
    this.enabelLists.forEach(row => {
    this.$refs.selectTable.toggleRowSelection(row, true)
  })
})
在使用 Element Plus 的表格组件 `el-table` 时,如果希望将默认的复框()功能改为单效果,可以通过对 `selection` 类型列的行为进行控制来实现。具体来说,可以在数据层面对选中状态进行管理,以达到单的目的。 以下是一种实现方式: 1. 使用 `@selection-change` 事件监听选中项的变化,并在处理函数中保证最只有一个项被选中。 2. 利用 `clearSelection` 和 `toggleRowSelection` 方法手动控制选中状态。 示例代码如下: ```vue <template> <el-table class="single-select" ref="tableRef" @selection-change="handleSelectionChange" > <el-table-column type="selection" /> <el-table-column label="序号" type="index" /> <el-table-column label="商品编码" prop="skuCode" /> <el-table-column label="商品名称" prop="skuName" /> </el-table> </template> <script setup> import { ref } from 'vue'; const tableRef = ref(); const aSelect = ref([]); function handleSelectionChange(val) { if (val.length > 1) { const lastIndex = val.length - 1; // 清空所有已择的,然后最后一项 tableRef.value.clearSelection(); tableRef.value.toggleRowSelection(val[lastIndex]); val = [val[lastIndex]]; } aSelect.value = val; } </script> <style scoped> .single-select :deep(.el-table__header) { .el-checkbox { display: none; } } </style> ``` 通过上述代码,当用户尝试个行时,系统会自动保留最后选中的那一行,从而实现了单效果[^2]。 此外,还可以考虑在单元格内渲染一个单按钮(Radio),并根据数据唯一标识字段来判断是否选中,这种方法更加直观,但需要更的模板和逻辑控制[^3]。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值