2011-10-24 9 views
1

多数の列と行を持つ2次元表を表示する必要があり、2つの次元は固定されていません。 JSF2 dataTableを使用すると、列数が動的ではないという制約があります。各列には適切なjsfタグが必要です。 dataTableの行についてプログラムで列を挿入する方法はありますか? また、すべてのタグを手動で指定して書き込む必要があるため、panelGridは適していません。 私はこのようなコンポーネントを作成するためにjavascriptを使用したくないので、JSF2を可能な限り活用したいと考えています。dataTableのようなコンポーネントを作成するにはどうすればいいですか?

答えて

0

standard JSF component setには、論理的に<h:columns>という名前のコンポーネントはありません。しかし、そのようなコンポーネントを持つ第三者コンポーネントライブラリが存在します。例えば、Tomahawk<t:columns>とし、PrimeFaces<p:columns>とします。 Tomahawkのコンポーネントはlook'n'feelを追加生成しませんので、CSSを完全にコントロールしたい場合はこれが完璧です。 PrimeFacesはCSS themeroller frameworkの助けを借りてカスタマイズ可能なlook'n'feelを生成しますので、themerollerを使用してlook'n'feelを管理したい場合はこれが最適です。ここで

をコピーして、わずかにそのtag documentationから変更、あなたはトマホークの<t:columns>を使うことができる方法の例です:

<t:dataTable value="#{bean.rows}" var="row"> 
    <t:columns value="#{bean.columns}" var="column"> 
     <f:facet name="header"> 
      <h:outputText value="#{column.name}"/> 
     </f:facet> 
     <h:outputText value="#{row[column.name]}"/> 
    </t:columns> 
</t:dataTable> 
+0

おかげで、それは私が探していたまさにです! – maxqua72

+0

ようこそ。 – BalusC

関連する問題