在表行上是不是有“keep-together='always'”的替代方法?

Posted

技术标签:

【中文标题】在表行上是不是有“keep-together=\'always\'”的替代方法?【英文标题】:Is there an alternative to "keep-together='always'" on table-row?在表行上是否有“keep-together='always'”的替代方法? 【发布时间】:2012-12-05 14:48:59 【问题描述】:

在找到“keep-together”属性并且不需要在行内分页后,我在我的 xslt 中的每个 table-row 元素上添加了keep-together="always"。 有没有更好的方法来达到同样的效果?这似乎有点hacky。 (ps。如果没有人提供更好的答案,我会接受“不”作为答案,前提是提供某种解释。)

【问题讨论】:

【参考方案1】:

keep-together="always" 很危险,因为这是一个复合属性,它也间接设置了keep-together.within-line="always"(禁止在表格单元格内换行)。您应该改用keep-together.within-column="always"。但是在表格行上指定它实际上是要走的路。没什么可笑的。

另请参阅:http://www.w3.org/TR/xsl11/#datatype

【讨论】:

我怎样才能在更多的行上使用这些来始终在一个站点上显示它?我尝试在更多行上使用一个块,但它不起作用:( 这是 fo:table-row 上 keep-with-next.within-column="always" 的情况(假设您正在谈论一张桌子)。您可能需要在此处结合 keep-together 和 keep-with-next(或 -previous)。 我在使用keep-together="always" 禁止表格单元格内的换行符时遇到了问题。非常感谢您的解释。 keep-together.within-column="always" 帮助了我,使整个表格在溢出时中断,但在表格单元格内保持换行符完整。【参考方案2】:

当我需要将表格锁定在一起时,这个答案解决了我的表格行在分页符上流动的问题。我用<fo:table keep-together="always"></fo:table> 谢谢。

【讨论】:

【参考方案3】:

我使用以下三种方法将表格行保持在一起并取得了一些成功:

将整个区块保持在一起

<tr keep-together.within-page="always">
...
</tr>

将相邻的块保持在一起

<tr keep-with-next.within-page="always">
    <td keep-together.within-page="always">...</td>
    ...
</tr>
<tr>...</tr>

<tr>...</tr>
<tr keep-with-previous.within-page="always">
    <td keep-together.within-page="always">...</td>
    ...
</tr>

尽管您必须小心 - 如果行或单元格将跨越生成文档的多页,您将失去该页面的底部!

【讨论】:

【参考方案4】:

使用处理整数保留的 XSL 格式化程序,您可以使用整数值,以便格式化程序将尝试将行保持在一起,但会破坏行而不是跑出页面的末尾。然而,这个问题被标记为 FOP,并且 FOP 的合规页面目前声明它对整数保持 (http://xmlgraphics.apache.org/fop/compliance.html#fo-property-keep-together) 的支持有限,所以 YMMV。

【讨论】:

以上是关于在表行上是不是有“keep-together='always'”的替代方法?的主要内容,如果未能解决你的问题,请参考以下文章

vue.js v-for 在两个表行上

应该插入还是更新新数据?当我尝试在表行中插入空值时,为啥会死锁?

根据 URL 参数重定向,如果 URL 参数在表行中可用 - PHP MySQL

如何在表行中使用引导程序 x-editable?

无法添加表行,因为“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'Users' 中插入标识列的显式值”错误

子视图可见时如何禁用 selectRowAtIndexPath