2013-03-24 23 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> 

相關問題