vue3中表格单选

本文介绍了如何在Vue中使用ElementUI的el-table组件实现数据表格,并演示了如何处理多选功能,包括如何调用toggleRowSelection方法来控制单行或多行的勾选状态。
摘要由CSDN通过智能技术生成
<el-table :data="datas.tableData" ref="tableRef" :max-height="400" class="mt10" border scrollbar-always-on @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55" />
        <el-table-column label="序号" type="index" fixed width="80"></el-table-column>
        <el-table-column label="服务项名称" prop="serviceNo" width="240"></el-table-column>
        <el-table-column label="创建人" prop="signingDate" width="240"></el-table-column>
        <el-table-column label="创建日期" prop="memberUserName" width="240"></el-table-column>
        <el-table-column label="备注" prop="contractNo" min-width="160"></el-table-column>
      </el-table>
// 勾选-单选
const tableRef = ref()
function handleSelectionChange(val) {
  if(val.length>1){
    tableRef.value.toggleRowSelection(val[0],false)
  }
};

说明:需要在表格标签上定义节点ref="tableRef",使用表格方法toggleRowSelection(val[0],false);该方法的第一个参数是哪一行(可以是当前行row,也可以是指定的行),第二个参数是布尔值,true就勾选,false就不勾选

Vue2和Vue3在表格左侧单选框的代码实现上有一些区别。下面是它们的主要区别: Vue2的实现方式: 1. 首先,在data定义一个变量selectedRow,用于保存选的行数据。 2. 在表格的模板,使用v-model指令将选的行数据与selectedRow进行双向绑定。 3. 在表格的每一行,使用一个单选框来表示选择状态,并将其绑定到当前行的数据上。 4. 当用户点击单选框时,通过触发一个方法来更新selectedRow的值。 示例代码如下: ```html <template> <table> <tr v-for="item in tableData" :key="item.id"> <td> <input type="radio" v-model="selectedRow" :value="item"> </td> <td>{{ item.name }}</td> <td>{{ item.age }}</td> </tr> </table> </template> <script> export default { data() { return { tableData: [ { id: 1, name: 'Alice', age: 20 }, { id: 2, name: 'Bob', age: 25 }, { id: 3, name: 'Charlie', age: 30 } ], selectedRow: null }; } }; </script> ``` Vue3的实现方式: 1. 在Vue3,可以使用新的Composition API来实现表格左侧单选框。 2. 首先,在setup函数定义一个ref变量selectedRow,用于保存选的行数据。 3. 在表格的模板,使用v-model指令将选的行数据与selectedRow进行双向绑定。 4. 在表格的每一行,使用一个单选框来表示选择状态,并将其绑定到当前行的数据上。 5. 当用户点击单选框时,通过触发一个方法来更新selectedRow的值。 示例代码如下: ```html <template> <table> <tr v-for="item in tableData" :key="item.id"> <td> <input type="radio" v-model="selectedRow" :value="item"> </td> <td>{{ item.name }}</td> <td>{{ item.age }}</td> </tr> </table> </template> <script> import { ref } from 'vue'; export default { setup() { const tableData = [ { id: 1, name: 'Alice', age: 20 }, { id: 2, name: 'Bob', age: 25 }, { id: 3, name: 'Charlie', age: 30 } ]; const selectedRow = ref(null); return { tableData, selectedRow }; } }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值