2012-01-19 1 views
1
<p:outputPanel> 
    <h:selectOneRadio value="#{myBean.favColor1}"> 
    <f:selectItem itemValue="Red" itemLabel="Color1 - Red" /> 
    <f:selectItem itemValue="Green" itemLabel="Color1 - Green" /> 
    <f:selectItem itemValue="Blue" itemLabel="Color1 - Blue" /> 
    </h:selectOneRadio> 
    <p:ajax update="picker,#{myBean.clientId}"/> 
</p:outputPanel> 

idがプログラムによって生成されるコンポーネントを更新する必要があります。バッキングBeanから生成されたIDを更新する方法

答えて

2

それは(コンポーネントIDのためではなく、クライアントIDのために動作します)親の名前付けコンテナへの相対UIViewRootの代わりに絶対的に解決されるように、クライアントのIDは、デフォルトの名前付けコンテナ区切り文字:で始まるべきです。完全に別の代替案として

<p:ajax update="picker,:#{myBean.clientId}"/> 

(私はかなりかゆいバッキングBeanへのクライアントIDを結合見つける)、ちょうどビューにコンポーネントを結合して、管理対象Beanを介しての代わりに、それを参照。

<h:someComponent binding="#{foo}" /> 
... 

<p:ajax update="picker,:#{foo.clientId}"/> 
+0

ありがとうございます、別々に動作しますが、他のオートコンプリートコンポーネントが壊れています。私はそれを理解する必要があります。 – Ravi

+0

あなたは大歓迎です。はい、それはまったく別の問題です。あなたが立ち往生した場合は、新しい質問をしてください。 – BalusC

+0

BalusC、私はこの[質問](あなたの答えの2つを混合しました)(http://stackoverflow.com/questions/8797287/is-conditional-rendering-of-components-possible-inside-datatable-without-updatin/8957536# 8957536)。ソリューションにあなたの考えを投稿してください。ありがとう! – Ravi

関連する問題