2012-06-29 10 views
5

h:selectOneRadioのレイアウトは、水平または垂直のいずれかにすることができるので、カスタムレイアウトを行うことができます。たとえば、8つのラジオボタンを表示する代わりに、各行に4つの2つの行を表示しますか? PrimeFaces p:selectOneRadioソリューションの横にあなたの答えを記入してください。それはCSS3を使ってIE8にラジオボタンを長方形の形で表示させます。カスタムレイアウトの仕方h:selectOneRadio

+0

可能な複製http://stackoverflow.com/questions/1150717/breaking-up-radio-buttons-into-columns-in-jsf/1152921 – Ravi

答えて

5

それはまさにそれではないのですが、あなたはラジオボタンのmarkuplessレンダリングを持つように"spread"に設定layout属性でTomahawk's<t:selectOneRadio>を使用することができます。 <t:radio>を使用して、<h:panelGrid columns="4">のように、個々のラジオボタンをマークアップに配置することができます。

など。

<t:selectOneRadio id="foo" value="#{bean.selectedItem}" layout="spread"> 
    <f:selectItems value="#{bean.availableItems}" /> 
</t:selectOneRadio> 

<h:panelGrid columns="4"> 
    <t:radio for="foo" index="0" /> 
    <t:radio for="foo" index="1" /> 
    <t:radio for="foo" index="2" /> 
    <t:radio for="foo" index="3" /> 

    <t:radio for="foo" index="4" /> 
    <t:radio for="foo" index="5" /> 
    <t:radio for="foo" index="6" /> 
    <t:radio for="foo" index="7" /> 
</h:panelGrid> 

あるいはラジオボタンの量は、不特定

<h:panelGrid columns="4"> 
    <c:forEach items="#{bean.availableItems}" varStatus="loop"> 
     <t:radio for="foo" index="#{loop.index}" /> 
    </c:forEach> 
</h:panelGrid> 

である(それは、時間をレンダリングビューの間で実行され、従って<h:panelGrid>の単一列として終わるよう<ui:repeat>が適切でないことに注意してください代わりに普通のHTML <table>を使用する必要があります)

+0

ありがとうございました:) Tomhawkは今のところ動作しますが、mvn経由でTomhawkをダウンロードすると、非常に多くのjarファイルがダウンロードされてしまいます。 MenuRendererを拡張してselectOneMenuをスタイリングするチュートリアルがあるのを見て、それを見てみましょう。カスタムselectOneRadioコンポーネントを作成するのに役立ちます。ありがとうありがとう –

+0

Tomahawkはオープンソースで、あなたもそれを覗いてみることができます。はい、それは依存関係の全体の束を伴います。 't:selectOneRadio'だけでは、Apache Commonsの依存関係で十分です。他のものはすべて不要です。 – BalusC

+0

うん、それにはたくさんの依存関係がある。 BalusC、私たちは、Mavenを介して、我々のアプリに依存関係を追加し、私はそれが全体の多くが付属しています ' org.apache.myfaces.tomahawk tomahawk20 1.1.13は'、これを回避する方法ですがありません? –

関連する問題