当前位置: 代码网 > it编程>编程语言>Javascript > antd实现table组件选中单行换样式(比如背景颜色)

antd实现table组件选中单行换样式(比如背景颜色)

2024年05月18日 Javascript 我要评论
antd中table组件选中单行换样式项目中有一个需求,点击某一行后,将改行的背景颜色换掉,换成一个比较醒目的颜色。首先看了看官方,官方还是比较可爱可亲的,都给我们准备好了onrow 用法适用于 on

antd中table组件选中单行换样式

项目中有一个需求,点击某一行后,将改行的背景颜色换掉,换成一个比较醒目的颜色。

首先看了看官方,官方还是比较可爱可亲的,都给我们准备好了

onrow 用法

适用于 onrow onheaderrow oncell onheadercell

<table
  onrow={record => {
    return {
      onclick: event => {}, // 点击行
      ondoubleclick: event => {},
      oncontextmenu: event => {},
      onmouseenter: event => {}, // 鼠标移入行
      onmouseleave: event => {},
    };
  }}
  onheaderrow={(columns, index) => {
    return {
      onclick: () => {}, // 点击表头行
    };
  }}
/>

很明显 这个属性对应的是一个回调函数,这个回调函数是有两个参数的

  • 第一个参数是当前行的信息
  • 第二个参数是当前行在table数组中的下标index

我们这俩主要数onclick这个事件,当我们给onrow赋值为一个回调函数之后,回调函数会执行,返回一个对象

{
      onclick: event => {}, // 点击行
      ondoubleclick: event => {},
      oncontextmenu: event => {},
      onmouseenter: event => {}, // 鼠标移入行
      onmouseleave: event => {},
    }

当我们单击的时候执行onclick;

后面四个分别是鼠标双击、鼠标右键、鼠标移入和鼠标移出;

我们这俩将onclick后面换成自己的自定义事件

上代码:

 <aaatable
         size={'default'}
         columns={columnsthird} //表格的列
         datasource={datatablethird} //表格渲染的数据
         title={'include列表'} //表格的名字
         onchange={this.onchangetablethird} //可以固定使用
         total={totalthird}
         pagesize={pagesizethird}
         current={currentpagethird}
         showtotal={true}
         rowclassname={this.rowclassnamefun}
         onrow={
              (record, index) => {
                  return {
                      onclick: _ => { this.zjq(record, index) }, // 点击行
                          };
              }}
 />

我们在zjq这个函数中能获取到当前点击的行内容和行下标;

    zjq = (rowitem, index) => {
        console.log("liuqing")
        this.setstate({
            index
        })
    }

我们在状态机中存储一下index,用于判断哪个下标显示突出的背景颜色

	state={
		index:""
	}

rowclassname

下面就该说table的另一个属性了行类名rowclassname,这个属性对应的也是一个函数,这个函数的默认两个参数同样是当前行内容和当前行下标,返回值为string也就是我们的类名即可。

我们可以使用index完美的得到哪一行被点击了

rowclassname={this.rowclassnamefun}
    rowclassnamefun = (record, index) => {
        console.log(record, index, "rowclassnamefun")
        if (index === this.state.index)
            return 'myselfclassname'
    }

最后就是引入样式文件

import './index.less'
	.myselfclassname{
  	  background-color: red;
	}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com