ajaxビヘイビアで "rendered"属性を使用すると、いくつかの問題が発生します。私はので、私はそれは多くのより明確になると思うのコードを貼り付けます:JSF 2.0 - Ajaxとレンダリングされたコンポーネント
<h:selectOneMenu value="#{registrarVentaController.esCobroChequeString}">
<f:selectItem itemLabel="Efectivo" itemValue="false"/>
<f:selectItem itemLabel="Cheque" itemValue="true"/>
<f:ajax execute="@this" render="@form"/>
</h:selectOneMenu>
<h:panelGroup id="panelMonto">
<span>Monto:</span>
<h:inputText value="#{registrarVentaController.monto}" rendered="#{registrarVentaController.banCobroCheque}"/>
<h:inputText value="#{registrarVentaController.monto}" rendered="#{not registrarVentaController.banCobroCheque}"/>
</h:panelGroup>
マイ「#{registrarVentaController}」はちょうどビュースコープJSFは、appropiateセッター/ゲッターとマネージドBeanされます。
それが動作します。この方法では、私は、ユーザーがオプションを選択したときに、意味「Efectivo」、panelGroup「panelMonto」は、ユーザーがオプションを選択したときに「逆チェックを更新されますと、我々は最初のinputTextを参照してくださいよ、と"ユーザーには2番目のinputTextが表示されます。このアプローチのために
私は「F:AJAX」使用=「panelMonto」をレンダリング使用して(「panelMonto」私はこの行動の仕事を得るために全体@formを更新し、私はちょうどpanelGroupを更新したいコンポーネントをそれはすべてでは動作しません(:formNameフォーム:私もフルスコープ解決を試みるpanelMontoなし結果)。
を私は特定の部分を表示するAJAX =「idComponent」または同様の挙動とのレンダリング作業を持ちたいですユーザーが選択した通りです。
よろしく!
注意(一つの解決策)
私は解決策(入力 JSF rendered is not working と自分自身のビットとして取り)を得ることができました。私はちょうど私が であることをユーザーが選択した内容に従って新しいフォームに移動しました。私はまだこのように私はまだ @フォームajaxのレンダリングを使用して、それはちょうど 私が使用していたような完全なフォームをこの新しいフォームをレンダリングします!コンポーネントID。あなたは
render=":panelMonto"
ない
render=":formName:panelMonto"
に確認した場合、まだ動作していないものを
'render =" @ form "'が動作しますが、 'render =" panelMonto "'はしませんか?さて、そこにはもっと多くの見方がありますか?その 'panelMonto'コンポーネントは' '、' '、' '、複合コンポーネントなんかのような別の' UINamingContainer'コンポーネントの中に実際にはありませんか?生成されたHTML出力のクライアントIDは何ですか(ブラウザで開いているページ、rightclick、*ソースを見る*) –
BalusC
この点にご注目いただき、ありがとうございます。問題はこれらの問題の周りにあり、私はそれを ... h:panelGroup>で解決することに成功しました(私が行った変更は、panelGroupコンポーネント) –