vue项目引用 iView 组件——Table组件的调用以及默认选中某些项

本文介绍了在Vue项目中使用iView的Table组件时,如何实现页面加载时默认选中某些项。通过在数据项中添加&_checked:true属性,或者利用this.$refs.table的ref属性动态设置,默认选中功能可以轻松实现。这两种方法分别对应于操作数据和直接操作DOM的不同策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发过程中,会遇到这样的需求,用到了Table组件,但是一进来页面需要默认选中某些项……

前期的iView的安装以及引用就不赘述了,直接切入主题:

html结构如下:

<!--
    demodata:table的一个标识(也可以理解成一个名字)
    liststyle:定义table需要的格式及其关键字
    listdata:指table具体的数据
-->
<Table ref="demodata" :columns="liststyle" :data="listdata" border></Table>

接下来,就是配置js部分了

data(){
        return{
            liststyle : [   //table数据格式
                {
                    type: 'selection',
                },
                {
                    title: '名字',
                    key: 'name',
                },
                {
                    title: '年龄',
                    key: 'age',
                },
            ],
            listdata : [    //table具体数据
   
您可以通过以下步骤实现vue+iview外部按钮删除Table表格通过复选框选中的某一行数据: 1. 在table组件中添加selection-change事件处理函数,用于监听选中数据的变化。 ```html <template> <Table :data="tableData" @selection-change="handleSelectionChange"> <TableColumn type="selection" :selectable="selectable"></TableColumn> <TableColumn label="姓名" prop="name"></TableColumn> <TableColumn label="年龄" prop="age"></TableColumn> <TableColumn label="性别" prop="gender"></TableColumn> </Table> <Button type="primary" @click="handleDelete">删除选中</Button> </template> ``` 2. 在methods中定义handleSelectionChange方法,用于保存当前选中的数据。 ```javascript methods: { handleSelectionChange(selectedItems) { this.selectedItems = selectedItems; }, handleDelete() { // 删除选中的数据 this.selectedItems.forEach(item => { const index = this.tableData.indexOf(item); this.tableData.splice(index, 1); }); // 取消选中状态 this.$refs.table.clearSelection(); } } ``` 3. 在handleDelete方法中实现删除选中的数据,并调用$refs.table.clearSelection()方法取消选中状态。 完整代码如下: ```html <template> <Table :data="tableData" @selection-change="handleSelectionChange" ref="table"> <TableColumn type="selection" :selectable="selectable"></TableColumn> <TableColumn label="姓名" prop="name"></TableColumn> <TableColumn label="年龄" prop="age"></TableColumn> <TableColumn label="性别" prop="gender"></TableColumn> </Table> <Button type="primary" @click="handleDelete">删除选中</Button> </template> <script> export default { data() { return { tableData: [ { name: '张三', age: 18, gender: '男' }, { name: '李四', age: 20, gender: '女' }, { name: '王五', age: 22, gender: '男' } ], selectedItems: [] }; }, methods: { handleSelectionChange(selectedItems) { this.selectedItems = selectedItems; }, handleDelete() { // 删除选中的数据 this.selectedItems.forEach(item => { const index = this.tableData.indexOf(item); this.tableData.splice(index, 1); }); // 取消选中状态 this.$refs.table.clearSelection(); } } }; </script> ``` 其中,需要注意的是在TableColumn中添加了type="selection"属性,用于实现复选框选择功能。同时,还需要定义selectable方法,用于控制某些行是否可选。 ```javascript selectable(row, index) { // 第一行不可选 return index !== 0; } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值