JSF:如何向a:dataTable添加空行?

时间:2011-02-05 16:20:54

标签: jsf datatable

我有一个数据表,如:

<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="&#931;" styleClass="bold" />
    </f:facet>
  </h:column>
  ...
</h:dataTable>

当结果列表没有元素时,表的tbody变为空。 Firefox有问题,页面渲染真的搞砸了。

当结果列表为空时,如何向tbody添加一行? (注意,这不是关于条件,而是关于使用的组件以及放置它们的位置。)

该行应该是一个colspan为10的td。我尝试了一些没有成功的事情。 f:逐字逐句吗?

3 个答案:

答案 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}"/>

通过这个我可以在底部创建一个空行,以便我的问题得到解决。由于水平滚动条,我的问题是无法查看最底部的行。