4

我正在尝试使用材料表,我想在材料表中使用colspanrowspan。我已经搜索了示例和示例,但我什么也没看到。

目前,我曾经喜欢在材料表中

<TableHead>
                      <TableRow>
                        <TableCell rowSpan={2}>Approve</TableCell>
                        <TableCell rowSpan={2} align="center">Date</TableCell>
                        <TableCell rowSpan={2} align="center">Emp id</TableCell>
                        <TableCell rowSpan={2} align="center">Emp Name</TableCell>
                        <TableCell rowSpan={2} align="center">Shift</TableCell>
                        <TableCell rowSpan={2} align="center">Cost Center</TableCell>

                        <TableCell colSpan={2} align="center">In</TableCell>
                        <TableCell colSpan={2} align="center">Out</TableCell>

                        <TableCell rowSpan={2} align="center">Action</TableCell>
                      </TableRow>
                      <TableRow>                       
                        <TableCell align="center">Time</TableCell>
                        <TableCell align="center">Date</TableCell>
                        <TableCell align="center">Time</TableCell>
                        <TableCell align="center">Date</TableCell>
                      </TableRow>
                    </TableHead>

在此处输入图像描述

我怎样才能实现同样的设计material-table

4

1 回答 1

7

您可以使用材料表的 components 属性来创建自定义标题。

function App() {
  const columns = [...];

  const data = [...];

  return (
    <div className="App">
      <MaterialTable
        columns={columns}
        data={data}
        components={{
          Header: props => {
            return (
              <TableHead>
                <TableRow>
                  <TableCell rowSpan={2}>Approve</TableCell>
                  <TableCell colSpan={2} align="center">
                    In
                  </TableCell>
                  <TableCell colSpan={2} align="center">
                    Out
                  </TableCell>
                  <TableCell rowSpan={2} align="center">
                    Action
                  </TableCell>
                </TableRow>
                <TableRow>
                  <TableCell align="center">Time</TableCell>
                  <TableCell align="center">Date</TableCell>
                  <TableCell align="center">Time</TableCell>
                  <TableCell align="center">Date</TableCell>
                </TableRow>
              </TableHead>
            );
          },
          Row: ({ data }) => {
            return (
              <TableRow>
                <TableCell>{data.approve}</TableCell>
                <TableCell align="center">{data.inTime}</TableCell>
                <TableCell align="center">{data.inDate}</TableCell>
                <TableCell align="center">{data.outTime}</TableCell>
                <TableCell align="center">{data.outDate}</TableCell>
                <TableCell align="center">{data.action}</TableCell>
              </TableRow>
            );
          }
        }}
      />
    </div>
  );
}

演示:codeandbox 链接

于 2019-10-14T10:22:45.383 回答