ant design 的table组件实现全选功能

导读:本篇文章讲解 ant design 的table组件实现全选功能,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

需求:ant design 的table组件中,点击表头的选择框可以实现全选的效果,但有时根据业务需求,需要在表格外面添加一个选择框,点击实现全选的效果,如图所示。

ant design 的table组件实现全选功能

实现方法:

1、添加一个checkbox

ant design 的table组件实现全选功能

2、 在table组件中添加  rowSelection 属性

ant design 的table组件实现全选功能

定义该属性

 // 选择行
    const { selectedRowKeys } = this.state;
    const rowSelection = {
      selectedRowKeys,
      onChange: this.handleRowSelectChange,
      getCheckboxProps: record => ({
        disabled: record.disabled,
      }),
    };

 

3、实现全选方法  

// 全选的方法
  selectAll = () => {
    // data 是这页面表格的所有数据
    const { data } = this.props;
    // selectedRows 为state中存放的选中的表格行
    const {selectedRows} = this.state;
    if(data.length === selectedRows.length){
      this.handleRowSelectChange([],[]);
    }else{
      //把索引数组里的值由String转换成Number
      const keys = Object.keys(data)
      const index = [];
      keys.forEach(item=>{
        index.push(Number(item))
      });
      this.handleRowSelectChange(index,data)
    }
  };

// 全选函数
// 传入选中的行的序号ID 和 选中的行
  handleRowSelectChange = (selectedRowKeys, selectedRows) => {
    // 在 state中 维护这个状态
    this.setState({
      selectedRowKeys: selectedRowKeys,
      selectedRows: selectedRows,
    });
  };

4、实现 CheckBox 的选中状态

//改变全选按钮的选中状态

const {data} = this.props;
const keys = Object.keys(data);
let isChecked = null
if(keys.length === selectedRowKeys.length){
    isChecked=true
  }else{
    isChecked=false
  }

 

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

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/66415.html

(1)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!