0

ここに画像の説明を入力してください

この画像に示すように表示する必要のある学生の記録があります。

Jsf2.0とprimefaces3.0を使用しています。使用してみましたが、正しい形式を取得できません。

私の問題は、FE、SE、TEのような名前の試験の列があり、単一の列に分類され、試験が3つしかないため、固定されています。画像の最初の3列の平均には、各レコードの行スパン3が必要です。 FE -Math、SE-Math、TE-Mathsなどすべてのs3科目のマークでは、「1レコード3行スパン」のようにこの構造を可能にするにはどうすればよいでしょうか。

この画像に示されているように、この構造をどのように実現できますか?

<p:dataTable var="s" value="#{tableBean.studentSummary}">  
    <p:column headerText="ID">  
        <h:outputText value="#{s.ID}" />  
    </p:column>  

    <p:column headerText="Name">  
        <h:outputText value="#{s.name}" />  
    </p:column>  

    <p:column headerText="Passing Date">  
        <h:outputText value="#{s.passDate}" />  
    </p:column>  

    <p:column headerText="Exam">  
        <h:outputText value="#{s.exam}" />  
    </p:column>  

    <p:column headerText="Maths">  
        <h:outputText value="#{s.math}" />  
    </p:column>  

    <p:column headerText="Physiscs">  
        <h:outputText value="#{s.phy}" />  
    </p:column>  

    <p:column headerText="Chemistry">  
        <h:outputText value="#{s.chem}" />  
    </p:column>

</p:dataTable>
4

1 に答える 1

0

これを試してみてください。最初に rowIndexVar を p:dataTable タグに追加してから、出力を条件付きでレンダリングします。したがって、コードは次のようになります。

<p:dataTable rowIndexVar="currRow" value=#{myBean.student} val="s">
  <p:column headerText="Name">  
      <h:outputText value="#{s.name}" rendered="#{currRow lt 1}"/>  
  </p:column>  

  <p:column headerText="Passing Date">  
      <h:outputText value="#{s.passDate}" rendered="#{currRow lt 1}"/>  
  </p:column>  

  <p:column headerText="Exam">  
      <h:outputText value="#{s.exam}" />  
  </p:column> 

  <p:column headerText="Maths">  
      <h:outputText value="#{s.math}" />  
  </p:column>  

  <p:column headerText="Physiscs">  
      <h:outputText value="#{s.phy}" />  
  </p:column>  

  <p:column headerText="Chemistry">  
      <h:outputText value="#{s.chem}" />  
  </p:column> 
</p:dataTable> 

更新:わかりました、そのアプローチのエラーに気付きましたが、rowIndexVar が誰かにとって役立つ可能性があるため、残します。代わりに、レンダリングされた属性を変更して、試験フィールドを確認します (構文が正しいとは限りません)。

<h:outputText value="#{s.name}" rendered="#{s.exam eq 'fe'}"/>
于 2012-10-15T20:41:49.123 に答える