我有一个数据表,如:
<h:dataTable id="box-score-away" value="#{individualAwayBoxScoreQuery.resultList}" var="_bssl">
<f:facet name="header">
<h:outputText value="Away Team" />
</f:facet>
<h:column>
<f:facet name="header">
<h:outputText value="Name" />
</f:facet>
<h:outputText value="#{_bssl.name}" />
<f:facet name="footer">
<h:outputText value="Σ" styleClass="bold" />
</f:facet>
</h:column>
...
</h:dataTable>
当结果列表没有元素时,表的tbody变为空。 Firefox有问题,页面渲染真的搞砸了。
当结果列表为空时,如何向tbody添加一行? (注意,这不是关于条件,而是关于使用的组件以及放置它们的位置。)
该行应该是一个colspan为10的td。我尝试了一些没有成功的事情。 f:逐字逐句吗?
答案 0 :(得分:3)
我有类似的问题,最后我使用dojo向表体添加<tr>
。
对于上面的示例,它可能如下所示:
dojo.addOnLoad(function(){
if(dojo.isMozilla) {
var bodyElem = dojo.query(".yourTablesStyleClass tbody")[0];
dojo.create("tr", null, bodyElem, "last");
} });
答案 1 :(得分:2)
#{individualAwayBoxScoreQuery.resultList}
您可以在模型中处理此问题。有条件地返回一个包含一个空bean的List
(我猜一个Map
也会这样做)。有几种方法可以做到这一点:在后面的bean中; EL功能;等
如果是内存服务器,MyFaces会自动执行此操作以生成有效的XHTML。
答案 2 :(得分:0)
将空bean添加到类中并使列条件有条理地帮助我在表的底部创建空行。
add a new boolean to the bean say dummyRow
then set bean.setName(".")
bean.setDummyRow(true);
resultList.add(bean)
Now in the jsp you need to chang like this
<h:outputText value="#{_bssl.name}" rendered="{!_bssl.dummyRow}"/>
通过这个我可以在底部创建一个空行,以便我的问题得到解决。由于水平滚动条,我的问题是无法查看最底部的行。