【问题标题】:JSF: how do you add an empty row to a :dataTable?JSF:如何向 :dataTable 添加一个空行?
【发布时间】:2011-06-21 22:25:57
【问题描述】:

我有一个像这样的数据表:

<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:verbatim 是要走的路吗?

【问题讨论】:

    标签: jsf datatable


    【解决方案1】:

    将空 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}"/>
    

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

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,最后我使用 dojo 将 &lt;tr&gt; 添加到表格正文中。

      对于上面的示例,它可能如下所示:

      dojo.addOnLoad(function(){
      
      if(dojo.isMozilla) {
          var bodyElem = dojo.query(".yourTablesStyleClass tbody")[0];
      
          dojo.create("tr", null, bodyElem, "last");
      
      }  });
      

      【讨论】:

        【解决方案3】:
        #{individualAwayBoxScoreQuery.resultList}
        

        您可以在模型中处理此问题。有条件地返回一个包含单个空 bean 的 List(我猜 Map 也可以)。有几种方法可以做到这一点:在后面的bean中; EL函数;等等

        如果是内存服务器,MyFaces 会自动生成有效的 XHTML。

        【讨论】:

        • 嗯,我正在寻找一种解决方案,它可以生成一个 colspan 为 10 的 td 标签。我猜一个虚拟列表元素不起作用。
        • @Kawu - 默认表格渲染器不会这样做;我想您可以在表格上放置一个renderered 属性并有条件地逐字呈现表格或虚拟空。我想你也可以用 JavaScript 做到这一点。
        猜你喜欢
        • 2013-06-02
        • 1970-01-01
        • 1970-01-01
        • 2014-03-19
        • 2012-10-03
        • 2015-04-21
        • 1970-01-01
        • 2014-12-26
        • 2018-08-20
        相关资源
        最近更新 更多