2009-08-11 8 views
0

は、誰もがラジオボタンコンポーネント(h:selectOneRadio)にrich:toggleControl部品を取り付ける任意の成功を持っていたか、その代わりにその子のいずれかが(この場合はs:enumItemで)項目を選択させます。は豊富な取り付け:ラジオボタンまたは選択項目にtoggleControl

Basicのコード例:

<h:selectOneRadio value="#{backingValue}"> 
    <s:enumItem enumValue="VAL_1" itemLabel="Value One" /> 
    <s:enumItem enumValue="VAL_2" itemLabel="Value Two" /> 
    <s:convertEnum /> 
</h:selectOneRadio> 

理想的なことは、私はそれが特定の状態に切り替えるかもしれないので、s:enumItem秒にトグル制御を添付することです。しかし、この時点では、トグルコントロールをh:selectOneRadioにアタッチすることができれば嬉しいです。私はh:selectOneRadios:enumItemの子としてトグルコントロールを試しました。いずれも動作しません。私はまた、h:selectOneRadioの周りのtoggleControlをラップしようとしましたが、この場合トグルコントロールは機能しますが、ラジオボタンは機能しません。

答えて

0

これは私の上記の質問に対する厳密な答えではありませんが、それは私が今のところそれを "より良い"

とにかく回避策:selectOneRadio豊富な呼び出します:togglePanelのJavaScript API:私はこの「適切」の豊富なを使用したいと思っそれでも

onclick="TogglePanelManager.toggleOnClient('TOGGLE_PANEL_ID_HERE',null);" 

を:toggleControlコンポーネントであればhにonclickイベントを追加可能...

1

あなたのrich:togglePanelをバッキングビーンの同じ値に結び、a4jサポートタグを使用して値を更新し、パネルを再レンダリングします。

rich:togglePanel #value属性はStringに解決する必要があるため、おそらく#{backingValue.name()}にバインドする必要があります(toString()を使用しないでください) Somoneのは)...後であなたにそれを上書きしてしまうことがありますので、このような

何か作業をする必要があります:

<h:selectOneRadio id="radioButtons" value="#{backingValue}"> 
    <a4j:support event="onclick" 
       ajaxSingle="true" 
       reRender="radioButtons, togglePanel"/> 

    <s:enumItem enumValue="VAL_1" itemLabel="Value One" /> 
    <s:enumItem enumValue="VAL_2" itemLabel="Value Two" /> 
    <s:convertEnum /> 
</h:selectOneRadio> 


<rich:togglePanel id="togglePanel" 
        switchType="ajax" 
        value="#{backingValue.name()}" > 

    <f:facet name="VAL_1"> 
     <h:outputText value="Selected enum value 1"/> 
    </f:facet> 

    <f:facet name="VAL_2"> 
     <h:outputText value="Selected enum value 2"/> 
    </f:facet> 
</rich:togglePanel> 

あなたは、AJAXサポートイベントが同様に結合してプレイしている場合があります。私は、AJAX4JSFが関わっているところでは、ラジオボタンを使った "onchange"と "onselect"イベントがちょっと怖いことが分かりました。私は文字列でこれを行っています。ここでは、バッキングBean内のアクションが値を設定することによってトグルパネルの状態を変更しますが、それはである必要があります。 enumも使用してください。

関連する問題