千锋扣丁学堂HTML5培训之详解element-ui表格中勾选checkbox

2019-09-02 13:47:34 3312浏览

今天千锋扣丁学堂HTML5培训老师给大家分享一篇关于详解element-ui表格中勾选checkbox,高亮当前行的详细介绍,首先大多数程序员遇到同样的问题在做后台管理系统的时候经常需要操作表格,这里我们要实现的一个功能就是,勾选复选框,高亮显示当前行,也就是当前行样式改变。这是一个非常常见的使用场景,官网给我们提供了一个带Checkbox的table表格,但是并没有给出上述使用案例,解决办法有很多,我简单总结下我自己的实现过程,希望能帮助到有同样需求的小伙伴。



勾选表格中当前项时会触发selection-change事件,在<el-table>中绑定handleSelectionChange方法。

<el-table
 @selection-change="handleSelectionChange"
>

编写handleSelectionChange方法,实现思路就是根据勾选当前行的下标,改变当前样式。但是elementtable表格中没有获取勾选后当前行index的方法,这里主要通过两个forEach遍历实现。

在data中定义tableData的时候一定要设置id属性,因为这里我们是通过id的对比来获取当前行的下标。

tableData: [{
 id:0,
 date: '2016-05-03',
 name: '王小虎',
 address: '上海市普陀区金沙江路 1518 弄'
}

下列方法打印出来的i就是你要获取的勾选行的索引值,我们在data中定义一个空数组,专门用来存储选中项的下标,方便使用。

handleSelectionChange(val) {
 var arr = [];
 val.forEach((val, index) => {
   this.tableData.forEach((v, i) => {
    // id 是每一行的数据id
   if(val.id == v.id){
    // console.log(i);
    arr.push(i)
   }
  })
 })  
 this.multipleSelection = arr;
}

获取到下标之后就需要改变样式,给<el-table>标签绑定修改当前行样式的方法rowStyle

<el-table
 @selection-change="handleSelectionChange"
 :row-class-name="rowStyle"
>

编写rowStyle方法,思路是循环便利multipleSelection数组,取出存储的下标,与当前行下标做对比,如果相同则返回rowStyle,改变当前行的样式。

这里需要注意一个问题:

forEach中return无效!我们希望达到某一条件时,跳出循环,代码终止,使用forEach进行遍历是无法实现的。

原因:forEach()无法在所有元素都传递给调用的函数之前终止遍历!

    this.multipleSelection.forEach((v)=>{
 if(rowIndex === v){
  return 'rowStyle'
 }
})

解决方法:使用for替换forEach

rowStyle({row, rowIndex}){
 let arr = this.multipleSelection;
 for(let i = 0; i < arr.length; i++){
  if(rowIndex === arr[i]){
   return 'rowStyle'
  }
 } 
}

在style中定义选中行的样式

</style>
 .rowStyle{
  background-color:red!important;
 }
</style>

另外如果想更改鼠标移入的hover样式,要注意需要在td上修改,因为事件是添加在td身上的,在tr上修改无效。

.el-table{
 width: 1163px; 
 margin: 0 auto;
 .el-table__body{
  tr:hover>td{
   background-color:rgba(238,250,249,1)!important;
  }
 }
}

以上就是关于千锋扣丁学堂HTML5培训之详解element-ui表格中勾选checkbox的全部内容,希望对大家的学习有所帮助,想要了解更多关于HTML5开发方面内容的小伙伴,请关注扣丁学堂HTML5培训官网、微信等平台,扣丁学堂IT职业在线学习教育有专业的HTML5讲师为您指导,此外扣丁学堂老师精心推出的HTML5视频教程定能让你快速掌握HTML5从入门到精通开发实战技能。扣丁学堂H5技术交流群:673883249。


                           【扫码进入HTML5VIP免费公开课】  


     【关注微信公众号获取更多学习资料】        【扫码进入HTML5前端开发VIP免费公开课】  



查看更多关于“HTML5开发技术资讯”的相关文章>>

标签: HTML5培训 HTML5视频教程 HTML5学习视频 HTML5在线视频 HTML5培训班

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号