antd table rowSelection多选框(可选择列表)

可选择列表

在这里插入图片描述
如上图,是antd的可选择列表,我们如何将普通列表变成可选择列表呢,这就用到了一个很重要的属性rowSelection。

rowSelection

如下图,rowSelection属性是一个对象,他有很多的参数。
在这里插入图片描述
下面是antd官网截图,关于rowSelection的功能配置。在这里插入图片描述

指定可选择列的属性作为key

注意:其中有个很重要的点,就是selectedRowKeys默认取得是列表的第一项,如果你想指定key,就要在table增加rowKey={record => record.id},id可以换成record的任意值。

// selectedRowKeys表示所选择列的key是一个字符串,selectedRows表示所选列的信息,是一个数组
 rowSelectionChange = (selectedRowKeys, selectedRows) => {
    console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
    this.setState({
      selectedRowKeys: selectedRowKeys
    })

  }

render() {
    const { form } = this.props;
    const {
      tabData,
    } = this.state;

    const rowSelection = {
      onChange: (selectedRowKeys, selectedRows) => {
        this.rowSelectionChange(selectedRowKeys, selectedRows)
      },
    };
    return (
      <Fragment>
          <Row style={{maxHeight: 100, overflowY: "auto" }}>
             <Table
               columns={this.columns}
               dataSource={tabData}
               pagination={false}
               scroll={{ x: "max-content" , }}
               rowSelection={rowSelection}
               rowKey={record => record.id}
             />
           </Row>
      </Fragment>
    );
  }
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
在 Ant Design 的 Table 组件中,可以通过 `rowSelection` 属性来添加多选框。如果需要合并单元格,可以通过设置 `rowSpan` 和 `colSpan` 来实现。 以下是一个示例代码: ```jsx import { Table } from 'antd'; const data = [ { key: '1', name: 'John Brown', age: 32, address: 'New York No. 1 Lake Park' }, { key: '2', name: 'Jim Green', age: 42, address: 'London No. 1 Lake Park' }, { key: '3', name: 'Joe Black', age: 32, address: 'Sidney No. 1 Lake Park' }, { key: '4', name: 'Jim Red', age: 32, address: 'London No. 2 Lake Park' } ]; const columns = [ { title: 'Name', dataIndex: 'name', key: 'name', colSpan: 2, // 合并两列 render: (text, record, index) => { const obj = { children: text, props: {} }; if (index === 0) { obj.props.rowSpan = 2; // 合并两行 } if (index === 2) { obj.props.rowSpan = 0; // 不渲染 } return obj; } }, { title: 'Age', dataIndex: 'age', key: 'age', colSpan: 0, // 不渲染 render: (text, record, index) => { const obj = { children: text, props: {} }; if (index === 0) { obj.props.rowSpan = 2; // 合并两行 } if (index === 2) { obj.props.rowSpan = 0; // 不渲染 } return obj; } }, { title: 'Address', dataIndex: 'address', key: 'address' } ]; function onChange(selectedRowKeys, selectedRows) { console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); } <Table rowSelection={{ type: 'checkbox', onChange: onChange }} columns={columns} dataSource={data} />; ``` 在这个示例中,我们通过 `colSpan` 和 `rowSpan` 来实现了单元格的合并。注意,由于合并单元格后表格结构变得复杂,需要通过 `render` 方法来渲染单元格内容。同时,多选框的处理与普通表格一样,通过 `rowSelection` 属性来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值