我在使用RichFaces 3.3.3 final的richDataTable中遇到max-height问题。
我希望表格具有最大高度,如果表格没有填充此高度(动态生成行数),表格会缩小。
如果我在桌子上定义一个高度,那么无论我是否没有足够的元素来填充表格,表格总是那么大。
有一些css使高度动态:
.rich-extdt-maindiv {
height: auto !important;
}
.rich-extdt-maindiv, .extdt-innerdiv {
position: relative !important;
}
.extdt-outerdiv {
height: auto !important;
overflow: visible !important;
}
.extdt-content {
height: auto !important;
max-height: 200px;
}
(摘自http://community.jboss.org/wiki/ExtendedDataTableDynamicHeightAndJIRABugRF-7488)
但是,我希望能够更改max-height(一页上有多个不同大小的表)。
此外,如果我使用此css,它将覆盖任何其他extendedDataTable的所有其他高度。
我目前正在做的是:
height="#{bean.listSize > 0 ? bean.listSize * 19 + 32 > 291 ? 291 : bean.listSize * 19 + 32 : 0}"
表示高度,其中19是行高32是标题高度,291是我想要的最大高度。
这不是一个理想的解决方案,因为我想要一个在各个行大小不同时能够正常工作的解决方案。
我无法使用f:verbatim或类似的东西进行JavaScript调用(请参阅How to embed and call a javascript script in a RichFaces/JSF page),但这不是一个好的解决方案,因为设置最大高度会为每个表设置最大高度这页纸。
有人有更好的解决方案吗?
我越想弄清楚这一点,我就越相信extendeDataTable是有限的。我想不出这个解决方案,但是我注意到这个程序中有不同大小的行的表。这是一个实现常识的功能,但没有办法做到这一点。
最后一次更新:
我无法解决任何问题。我仍然使用上面的高度函数,它易于理解,易于控制每页。可能需要根据连续的项目更改“19”像素值,以使行更粗。
使用这个解决方案,我不想在单元格中包装,因为高度基于行数。这会在行的末尾添加一点“...”。
我添加了一个rich:toolTip(或我自己的工具提示,因为我开始怀疑richfaces),它在鼠标悬停时显示单元格中的其余内容。不是最好的解决方案,但它适用于我们需要的东西。
这就是你需要的CSS:
.rich-extdt-maindiv, .extdt-innerdiv {
position: relative !important;
}
.extdt-outerdiv {
overflow: visible !important;
}
原始文件中的另一个css是控制高度。它们超越它,因为高度是动态的,并用一个标签控制最大高度。如果您不想要动态最大高度,这是一个完美的解决方案。
另一种选择是,如果每页只有一个表,则使用jQuery来更改.extdt-content的最大高度。不是我的选择,因为我们每页有多个。
希望这有助于其他人。
高度语句不兼容跨浏览器。