elementui中table表头列有排序,但增加勾选框后,勾选事件会触发排序

elementui中table表头列有排序,但增加勾选框后,勾选事件会触发排序

此时需要屏蔽表头列的冒泡事件,可以使用click.stop来解决此问题

<el-table :data="tableData">
    <el-table-column v-for="(h, i) in tableHeader" :key="Math.random()" sortable :prop="h.prop">
        <template slot="header" slot-scope="scope">
            <span @click.stop>
                <el-checkbox v-model="h.select">
                </el-checkbox>
                <span>{{h.title}}</span>
            </span>
        </template>
    </el-table-column>
</el-table>

可以通过以下步骤在 el-table表头加入勾选框并判断哪些表头勾选: 1. 在 el-table表头添加一个列,用于显示勾选框,如下所示: ```html <el-table-column type="selection" width="55"></el-table-column> ``` 2. 使用 v-model 绑定一个数组来存储被选中表头的 key,如下所示: ```html <el-table :data="tableData" :header-cell-style="{background: '#f7f7f7'}" @selection-change="handleSelectionChange" v-loading="loading" :border="true" :show-header="true" :header-row-style="{'font-weight': 'bold'}" :header-cell-style="{background: '#f7f7f7'}" v-model="selectedColumns" > <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="name" label="姓名" width="120"></el-table-column> <el-table-column prop="age" label="年龄" width="120"></el-table-column> <el-table-column prop="address" label="地址"></el-table-column> </el-table> ``` ```javascript export default { data() { return { tableData: [ { name: '张三', age: 18, address: '北京市朝阳区' }, { name: '李四', age: 22, address: '上海市浦东新区' }, { name: '王五', age: 28, address: '广州市天河区' } ], loading: false, selectedColumns: [] } }, methods: { handleSelectionChange(selection) { this.selectedColumns = selection.map(item => item.column.key) console.log(this.selectedColumns) } } } ``` 在上述代码,我们使用 handleSelectionChange 方法来监听表头勾选状态的变化,当勾选状态发生变化时,将选中表头的 key 存储在 selectedColumns 数组,并打印到控制台
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值