ant-design/components/table/demo/head.md
2016-08-15 08:07:03 +08:00

94 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
order: 6
title:
en-US: Filter and sorter
zh-CN: 筛选和排序
---
## zh-CN
对某一列数据进行筛选,使用列的 `filters` 属性来指定需要筛选菜单的列,`onFilter` 用于筛选当前数据,`filterMultiple` 用于指定多选和单选。
对某一列数据进行排序,通过指定列的 `sorter` 函数即可启动排序按钮。`sorter: function(a, b) { ... }` a、b 为比较的两个列数据。
## en-US
Use `filters` to generate filter menu in columns, `onFilter` to determine filtered result, and `filterMultiple` to indicate whether it's multiple or single selection.
Use `sorter` to make a column sortable. `sorter` can be a function `function(a, b) { ... }` for sorting data locally.
````jsx
import { Table } from 'antd';
const columns = [{
title: '姓名',
dataIndex: 'name',
filters: [{
text: '姓李的',
value: '李',
}, {
text: '姓胡的',
value: '胡',
}, {
text: '子菜单',
value: '子菜单',
children: [{
text: '姓陈的',
value: '陈',
}, {
text: '姓王的',
value: '王',
}],
}],
// specify the condition of filtering result
// here is that finding the name started with `value`
onFilter: (value, record) => record.name.indexOf(value) === 0,
sorter: (a, b) => a.name.length - b.name.length,
}, {
title: '年龄',
dataIndex: 'age',
sorter: (a, b) => a.age - b.age,
}, {
title: '地址',
dataIndex: 'address',
filters: [{
text: '南湖',
value: '南湖',
}, {
text: '西湖',
value: '西湖',
}],
filterMultiple: false,
onFilter: (value, record) => record.address.indexOf(value) === 0,
sorter: (a, b) => a.address.length - b.address.length,
}];
const data = [{
key: '1',
name: '胡斌',
age: 32,
address: '南湖区湖底公园1号',
}, {
key: '2',
name: '胡彦祖',
age: 42,
address: '西湖区湖底公园12号',
}, {
key: '3',
name: '李大嘴',
age: 32,
address: '南湖区湖底公园123号',
}, {
key: '4',
name: '李秀莲大嘴哥',
age: 32,
address: '西湖区湖底公园123号',
}];
function onChange(pagination, filters, sorter) {
console.log('params', pagination, filters, sorter);
}
ReactDOM.render(<Table columns={columns} dataSource={data} onChange={onChange} />, mountNode);
````