所以基本上,我的表格有一堆子标题,我希望在这么多小节之后插入一个分页符,并防止在其中一个节的中间自动分页。大概是这个样子。灰色区域是分页符之前的子标题,如果它像第 4、8、12 等小节。
我遇到的两个主要问题可能是 React 独有的,也可能不是。另外,我正在使用 Bootstrap。
1)<div>作为<table>, <tbody>,<thead>问题的孩子:
我最初的想法是<div className='pagebreak'>在每 4 次之后插入<th>。这将触发错误(释义)为<div> cannot be a child of <table>/<tbody>/<thead>.
因此,不允许执行以下操作:
let i = 1;
return _.map(section, s => {
i++;
return (
<table>
<tbody>
<tr>
<th colSpan='6'>{s.subSectionTitle}</th>
</tr>
<tr>
<td>{s.data1}</td>
<td>{s.data2}</td>
<td>{s.data3}</td>
<td>{s.data4}</td>
<td>{s.data5}</td>
<td>{s.data6}</td>
</tr>
{ i = 4 ? <div className='pagebreak'></div> : null }
</tbody>
</table>
)
})
我还有其他一些没有用的好主意是做这样的事情:
{ i = 4 ? <tr className='pagebreak'></tr> : null }
或者:
{ i = 4 ? <th><td className='pagebreak'></th></tr> : null }
或者:
{ i = 4 ? <tr><th><div className='pagebreak'></div></th></tr> : null }
虽然这些会绕过那里的错误,但他们不会做任何事情。它会忽略pagebreak
似乎您不能在<table>标签内放置任何类型的分页符。
2)<table>为每个小节创建一个新的。
它看起来就像废话,因为列宽会因表格而异,除非我将宽度设为静态,而我不想这样做。想要保持它们动态,同时让所有列的宽度始终相同,这取决于给定列中数据点的最大宽度。
话虽如此,这确实有效,因为它实际上插入了一个分页符:
return (
<table>
<tbody>
<tr>
<th colSpan='6'>{s.subSectionTitle}</th>
</tr>
<tr>
<td>{s.data1}</td>
<td>{s.data2}</td>
<td>{s.data3}</td>
<td>{s.data4}</td>
<td>{s.data5}</td>
<td>{s.data6}</td>
</tr>
</tbody>
</table>
<div className='pagebreak'></div>
<table>
<tbody>
<tr>
<th colSpan='6'>{s.subSectionTitle}</th>
</tr>
<tr>
<td>{s.data1}</td>
<td>{s.data2}</td>
<td>{s.data3}</td>
<td>{s.data4}</td>
<td>{s.data5}</td>
<td>{s.data6}</td>
</tr>
</tbody>
</table>
)
有关如何处理此问题的任何建议?
