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复选框全禁用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341