antd Table 自定义控制多选框显示与隐藏

antd 版本4.1以上
在这里插入图片描述

 const rowSelection ={
            hideSelectAll: true,
            onChange: onSelectChange,
            selectedRowKeys: selectedRowKeys,
            //隐藏全选勾选框与自定义选择项---先确定自己的版本
            hideDefaultSelections: '自定义判断', //2.x版本属性
            hideSelectAll: '自定义判断', //4.3.0版本属性
            renderCell: (checked, record, index, originNode) => {
              if (加入你的判断条件:判断是否显示多选框) {
                return null;
              }
              return originNode;
            },
          }

成品图:
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果你想要在 antd table自定义筛选,可以通过在 `columns` 中设置 `filterDropdown` 和 `onFilter` 属性来实现。具体步骤如下: 1. 在 `columns` 中设置 `filterDropdown` 属性,该属性值为一个自定义的筛选框组件。例如: ```javascript const columns = [ { title: 'Name', dataIndex: 'name', key: 'name', filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters, }) => ( <div style={{ padding: 8 }}> <Input placeholder="Search name" value={selectedKeys[0]} onChange={e => setSelectedKeys(e.target.value ? [e.target.value] : [])} onPressEnter={confirm} style={{ width: 188, marginBottom: 8, display: 'block' }} /> <Button type="primary" onClick={confirm} icon={<SearchOutlined />} size="small" style={{ width: 90, marginRight: 8 }} > Search </Button> <Button onClick={clearFilters} size="small" style={{ width: 90 }}> Reset </Button> </div> ), onFilter: (value, record) => record.name.toLowerCase().includes(value.toLowerCase()), sorter: (a, b) => a.name.length - b.name.length, sortDirections: ['descend', 'ascend'], }, // 其他列 ]; ``` 上述代码中,我们自定义了一个筛选框组件,其中包含了一个 `Input` 和两个 `Button`,分别用于输入关键字、搜索和清空筛选条件。`setSelectedKeys` 和 `selectedKeys` 用于维护当前的筛选条件,`confirm` 和 `clearFilters` 分别用于确认筛选和清空筛选条件。 2. 在 `columns` 中设置 `onFilter` 属性,该属性值为一个函数,用于根据当前的筛选条件过滤数据。例如: ```javascript const columns = [ { title: 'Name', dataIndex: 'name', key: 'name', filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters, }) => ( // 自定义筛选框组件 ), onFilter: (value, record) => record.name.toLowerCase().includes(value.toLowerCase()), // 其他属性 }, // 其他列 ]; ``` 上述代码中,我们定义了一个 `onFilter` 函数,该函数根据当前的筛选条件(即 `value`)和当前行的数据(即 `record`)来判断当前行是否应该被筛选出来。 3. 在 `Table` 组件中设置 `filterDropdownVisible` 和 `onFilterDropdownVisibleChange` 属性,用于控制筛选框的显示隐藏。例如: ```javascript const App = () => { const [data, setData] = useState([]); const handleTableChange = (pagination, filters, sorter) => { console.log('params', pagination, filters, sorter); }; const handleFetchData = () => { // 发起数据请求 }; return ( <Table columns={columns} dataSource={data} onChange={handleTableChange} filterDropdownVisible={true} onFilterDropdownVisibleChange={(visible) => { if (visible) { handleFetchData(); } }} /> ); }; ``` 上述代码中,我们设置了 `filterDropdownVisible` 属性为 `true`,表示默认显示筛选框。同时,当筛选框的显示状态发生变化时,我们会触发 `onFilterDropdownVisibleChange` 回调函数,该函数中我们可以通过发起数据请求来获取最新的筛选条件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值