You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ant-design/components/table/demo/colspan-rowspan.md

121 lines
2.4 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 表格行/列合并
- order: 13
表头只支持列合并cell = [{title: '姓名', `colSpan: 2`}]。
表格支持行/列合并可以指定内容对齐方式colSpan或者rowSpan设值为 0 时,设置的表格不会渲染。
---
````jsx
import { Table } from 'antd';
// 事例表中第四行合并了五列除了第一列设置colSpan=5 外其他列的第四行colSpan=0 (被合并掉,不会渲染)
const renderContent = function(value, row, index) {
let obj = {
children: value,
props: {}
}
if (index === 4) {
obj.props.colSpan = 0;
}
return obj;
}
const columns = [{
title: '姓名',
dataIndex: 'name',
render: function(text, row, index) {
if (index < 4) {
return <a href="javascript:;">{text}</a>;
}else{
return {
children: <a href="javascript:;">{text}</a>,
props: {
align: 'center',
colSpan: 5
}
}
}
}
}, {
title: '年龄',
dataIndex: 'age',
render: renderContent
}, {
title: '家庭电话',
colSpan: 2,
dataIndex: 'tel',
render: function(value, row, index) {
let obj = {
children: value,
props:{}
}
// 第三列的第三行行合并
if (index === 2) {
obj.props.rowSpan = 2;
}
// 第三列的第四行被合并没了设置rowSpan=0 直接不用渲染
if (index === 3) {
obj.props.rowSpan = 0;
}
if (index === 4) {
obj.props.colSpan = 0;
}
return obj;
}
}, {
title: '手机号',
colSpan: 0,
dataIndex: 'phone',
render: renderContent
}, {
title: '住址',
dataIndex: 'address',
render: renderContent
}];
const data = [{
key: '1',
name: '胡彦斌',
age: 32,
tel: '0571-22098909',
phone: 18889898989,
address: '西湖区湖底公园1号'
}, {
key: '2',
name: '胡彦祖',
tel: '0571-22098333',
phone: 18889898888,
age: 42,
address: '西湖区湖底公园1号'
}, {
key: '3',
name: '李大嘴',
age: 32,
tel: '0575-22098909',
phone: 18900010002,
address: '西湖区湖底公园1号'
}, {
key: '4',
name: '李夫人',
age: 18,
tel: '0575-22098909',
phone: 18900010002,
address: '西湖区湖底公园1号'
}, {
key: '5',
name: '习大大',
age: 18,
tel: '0575-22098909',
phone: 18900010002,
address: '西湖区湖底公园1号'
}];
ReactDOM.render(<Table columns={columns} dataSource={data} bordered={true} />
, document.getElementById('components-table-demo-colspan-rowspan'));
````