RichFaces 扩展数据表在呈现时有一个外部 div,它将所有溢出设置为隐藏。因此,每行显示一个工具提示并不能很好地工作,因为当将鼠标悬停在表格底部或右边缘的行上时,工具提示会部分隐藏在视图之外。
呈现的 HTML 看起来很像这样。需要明确的是,RichFaces 渲染引擎完全控制输出外部 DIV 的样式,包括第 3 行的“溢出:隐藏”:
<div id="toplevelform:myTable" class="extdt-maindiv rich-extdt-maindiv">
<div id="toplevelform:myTable:od" class="extdt-outerdiv"
style="width:100%; height:100%; overflow:hidden;">
<!-- inner divs to display rows and columns with their
respective tooltips here -->
</div>
</div>
第 3 行的“溢出:隐藏”是导致问题的原因,如果我使用客户端后缀(例如 Firebug 编辑器)手动删除它,它可以解决问题,但我需要在 RichFaces 框架内解决它,以便 CSS 是一开始就没有输出。
用来产生这个的 RichFaces 标记看起来很像这样:
<rich:extendedDataTable id="myTable" value="#{backingBean.myIterableProperty}" var="myPropVar">
<rich:column id="nameCol" width="100%">
<h:outputText value="#{myPropVar.name}"/>
<rich:toolTip direction="bottom-right" layout="block">
My tooltip text here...
</rich:toolTip>
</rich:column>
</rich:extendedDataTable>
考虑到必须在到达客户端之前对其进行修复的约束,是否有一种干净的方法可以清楚地显示工具提示而不受其边界 DIV 的限制?
顺便说一句,改变工具提示方向也不是答案!