javascript - Ant Design - 过滤后如何获取表格行数?
问题描述
我使用 Ant-design 的 Table 组件来搜索、过滤和排序一大组数据,但是“选择所有数据”有问题。
例如,如果我单击表格顶部的复选框,则仅选择屏幕上的显示行。因此,如果我更改页面,则不会选择其他行。如果我想选择我需要自定义选择和使用的所有数据rowSelection.selections
。
正如您在下面的ant.design 网站的示例摘录中看到的那样,建议的解决方案是直接编写我需要选择的行的所有键,但是如果我在一个列之前进行了过滤,我就无法知道我的状态道具数据源。
所以我的问题是:我怎样才能知道屏幕上当前可用的所有数据?
例如,如果最初有10页,然后我过滤排序,现在有2页,如何获取新数据集的数组。
提前致谢。
class App extends React.Component {
state = {
selectedRowKeys: [], // Check here to configure the default column
};
onSelectChange = (selectedRowKeys) => {
console.log('selectedRowKeys changed: ', selectedRowKeys);
this.setState({ selectedRowKeys });
}
render() {
const { selectedRowKeys } = this.state;
const rowSelection = {
selectedRowKeys,
onChange: this.onSelectChange,
hideDefaultSelections: true,
selections: [{
key: 'all-data',
text: 'Select All Data',
onSelect: () => {
this.setState({
selectedRowKeys: [...Array(46).keys()], // 0...45
});
},
}, {
key: 'odd',
text: 'Select Odd Row',
onSelect: (changableRowKeys) => {
let newSelectedRowKeys = [];
newSelectedRowKeys = changableRowKeys.filter((key, index) => {
if (index % 2 !== 0) {
return false;
}
return true;
});
this.setState({ selectedRowKeys: newSelectedRowKeys });
},
}, {
key: 'even',
text: 'Select Even Row',
onSelect: (changableRowKeys) => {
let newSelectedRowKeys = [];
newSelectedRowKeys = changableRowKeys.filter((key, index) => {
if (index % 2 !== 0) {
return true;
}
return false;
});
this.setState({ selectedRowKeys: newSelectedRowKeys });
},
}],
onSelection: this.onSelection,
};
return (
<Table rowSelection={rowSelection} columns={columns} dataSource={data} />
);
}
}
解决方案
你可以试试这个道具Table
onChange: Callback executed when pagination, filters or sorter is changed
Function(pagination, filters, sorter, extra: { currentDataSource: [] })
这currentDataSource
可能是你想要的东西。
推荐阅读
- coldfusion - ColdFusion 9:如何用空格填充列表值
- json - 如何获取集合中的文档列表,直到“成本”字段的总和达到特定值(mongoDb)?
- asp.net-mvc - 角度路由始终重定向到同一页面
- c++ - 使用 NupenGL 时找不到“网格”标识符
- python - Python的JPEG2000 API
- scala - Pyspark 抛出错误:py4j.Py4JException:方法 __getstate__([]) 不存在
- c++ - QT 从 QDataStream 读/写
- amazon-web-services - AWS Lambda async/await forEach(不是每个项目)
- php - 更新php中数组内对象属性的值
- sql - Pandas read_sql() 在使用 hive odbc 连接器时不喜欢 DISTINCT 关键字