element-ui table使用type='selection'复选框全禁用(全选禁用)详解
问题总结:
当条件数据全被禁用时,全选按钮也变成禁用的状态,而不是隐藏。有会做的小伙伴希望跟帖。谢谢!
复选框框架:
通过调用selectable方法,进行禁用复选框。
<!-- 复选框禁用 --> <el-table v-loading="loading" :data="studentList" @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55" align="center" :selectable="selectable" /> <el-table-column label="编号" align="center" prop="studentId" />
1.指定行禁用:
//复选框禁用 selectable(row,rowIndex) { //索引是从0开始,条件1是指只有第2行数据不被禁用 if(rowIndex == 1){ return true; //不禁用 }else { return false; //禁用 } }
效果:
2.条件禁用:
//复选框禁用 selectable(row,rowIndex) { //只有姓名【zhang】不被禁用 if (row.studentName == "zhang") { return true; //不禁用 }else { return false; //禁用 } }
效果:
问题点:当条件数据全被禁用时,全选按钮不是禁用的状态。
//复选框全部禁用 selectable(row,rowIndex) { return false; }
效果:
复选框全被禁用时,全选按钮将被隐藏
回避做法:
加了一个:header-cell-class-name属性,通过调用cellClass方法,当全被禁用时,全选按钮将被隐藏。
<!-- 复选框禁用 --> <el-table v-loading="loading" :data="studentList" :header-cell-class-name="cellClass" @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55" align="center" :selectable="selectable" /> <el-table-column label="编号" align="center" prop="studentId" />
实现:
定义一个参数DisableSelection:true,实现全选禁用。
export default { name: "Student", data() { return { // 全选按钮隐藏 DisableSelection:true, } } }
追加全选按钮的隐藏样式:
<style> .el-table .DisableSelection .cell .el-checkbox__inner{ display: none; position: relative; } .el-table .DisableSelection .cell:before{ content: ""; position: absolute; } </style>
追加全选按钮隐藏函数cellClass,启用隐藏样式:
//全选按钮隐藏 cellClass(row){ row.length console.log(row) if(this.DisableSelection){ if (row.columnIndex === 0) { return 'DisableSelection' } } },
复选框当存在不禁用时,重置DisableSelection属性值:
//复选框禁用 selectable(row,rowIndex) { //所有行都被禁用 if(rowIndex < 0){ this.DisableSelection = false && this.DisableSelection; return true; //不禁用 }else { return false; //禁用 } },
效果:全被禁用时,全选按钮被隐藏
存在可选按钮场合:前两行可选。
//复选框禁用 selectable(row,rowIndex) { //前两行可选的状态 if(rowIndex < 2){ this.DisableSelection = false && this.DisableSelection; return true; //不禁用 }else { return false; //禁用 } },
当存在可选时,全选按钮被表示出来
问题总结:
当条件数据全被禁用时,全选按钮也变成禁用的状态,而不是隐藏。
总结
到此这篇关于element-ui table使用type='selection'复选框全禁用(全选禁用)的文章就介绍到这了,更多相关element-ui table复选框全禁用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码)
这篇文章主要介绍了使用vis-timeline绘制甘特图并实现时间轴的中文化(案例代码),本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-02-02使用sessionStorage解决vuex在页面刷新后数据被清除的问题
localStorage没有时间期限,除非将它移除,sessionStorage即会话,当浏览器关闭时会话结束,有时间期限,具有自行百度。本文使用的是sessionStorage解决vuex在页面刷新后数据被清除的问题,需要的朋友可以参考下2018-04-04Vue+Vite项目初建(axios+Unocss+iconify)的实现
一个好的项目开始搭建总是需要配置许多初始化配置,本文就来介绍一下Vue+Vite项目初建(axios+Unocss+iconify)的实现,具有一定的参考价值,感兴趣的可以了解一下2024-02-02
最新评论