2013-03-24 29 views
0

我有以下代码:为什么<h:column><F:面名= “报头”><H:的outputText>呈现的作为第代替TD

<h:dataTable class="pretty" value="#{ftManagedBean.ftDataModel}" > 
    <h:column> 
     <f:facet name="header"> 
      <h:outputText value="Name"/> 
     </f:facet> 
    </h:column> 
    <h:column> 
     <f:facet name="header"> 
      <h:outputText value="Outstanding"/> 
     </f:facet> 
    </h:column>  
</h:dataTable> 

但它打印名称和杰出<th></th>标记之间。为什么?我需要他们在<td></td>标签。我怎样才能做到这一点?

回答

2

名称和突出结果在<th>元素,因为您将它们放在<f:facet name="header">标签内。删除这些,他们会输出到<td>标签。

<h:dataTable class="pretty" value="#{ftManagedBean.ftDataModel}" > 
    <h:column> 
     <h:outputText value="Name"/> 
    </h:column> 
    <h:column> 
     <h:outputText value="Outstanding"/> 
    </h:column>  
</h:dataTable> 

有关创建表的示例,请参阅JSF HTML Tag Reference

+0

只打印​​名称是不是有 – user2153566 2013-03-24 19:55:44

+0

@ user2153566请编辑的问题,以显示你有什么权利了。 – 2013-03-24 20:32:41

+1

显然'ftDataModel'是空的。也许你实际上需要''? – BalusC 2013-03-25 01:36:52

0

你必须改变你的代码如下:

<h:dataTable class="pretty" value="#{ftManagedBean.ftDataModel}" > 
    <h:column> 
     <h:outputText value="Name"/> 
    </h:column> 
    <h:column> 
     <h:outputText value="Outstanding"/> 
    </h:column>  
</h:dataTable> 

如果您缠绕<f:facet name="header">这相当于<th>(表头)中的输出文本,否则他们将在<td>打印。

+0

它没有打印什么原因 – user2153566 2013-03-24 19:47:33

0

我试试这个解决方案,确定。 (http://www.coderanch.com/t/431222/JSF/java/dynamically-set-panel-header-condition

<rich:dataGrid value="#{myMB.student.list}" rendered="#{!empty myMB.student and !empty myMB.student.list}" var="st" rowKeyVar="row"> 
     <rich:panel>            
      <f:facet name="header"> 
      <h:panelGroup id="panelHeader"> 
       <h:outputText value="Just one student" id="header1" required="true" rendered="#{!myMB.manyStudents}"/> 
       <h:outputText value="#{row+1}º Student" id="header2" required="true" rendered="#{myMB.manyStudents}"/> 
       </h:panelGroup>         
      </f:facet> 
    <rich:panel> 

相关问题