0

私はTomahawk radio control自分の設計要件に使用しています。私はテストしていて、誰かが答えてくれるかどうか尋ねたかった.

 <t:selectOneRadio id="myRadio" forceId="true" layout="spread" styleClass="field checkbox">
                                    <f:selectItems value="#{personBean.genders}"  />
                                </t:selectOneRadio>
                                <c:forEach items="#{personBean.genders}" varStatus="loop">
                                    <span style="width:80px;" class="checkbox"><t:radio for=":myForm:myRadio"  index="#{loop.index}" /></span>
                                </c:forEach>

HTML生成

<span class="checkbox"><input type="radio" class="field checkbox" value="male" name="myRadio" id="myForm:j_idt35"><label for="myForm:j_idt35"> male</label></span>

質問:

チェックボックスでレンダリングされる男性にクラス属性を使用したい。個別にレンダリングすることは可能ですか?

以下のようなスタイルを適用できますが、Label を個別にレンダリングして、より詳細に制御したいと考えています。

.checkbox label {
    display: block;
    cursor: pointer;
    font-size: 100%;
    line-height: 150%;
    margin: -17px 0 0 18px;
    padding: 0 0 5px 0;
    color: #222;
    width: 88%
}
4

1 に答える 1

0

ソースコードを見ると、そうではありません。

ただし、 + を使用してスタイルを設定できます。

input[type='checkbox'] + label {
    display: block;
    cursor: pointer;
    font-size: 100%;
    line-height: 150%;
    margin: -17px 0 0 18px;
    padding: 0 0 5px 0;
    color: #222;
    width: 88%
}

別の方法でレンダリングしたい場合は、HtmlRadioRenderer をオーバーライドする必要があります。

これを入れてくださいfaces-config.xml

  <renderer>
    <component-family>javax.faces.SelectOne</component-family>
    <renderer-type>org.apache.myfaces.Radio</renderer-type>
    <renderer-class>your-renderer-class</renderer-class>
  </renderer>

class を作成し、your-renderer-class.javain でオーバーライドorg.apache.myfaces.renderkit.html.ext.HtmlRadioRendererすれば準備完了です。

これがどのように行われるかについては、Web を参照してください: JSF 2.0: カスタム レンダラーでベース レンダラーをオーバーライドする方法は?

于 2013-09-14T14:32:49.603 に答える