0

コンポーネントがtabViewあり、各tabパネルにform.

tabViewアプリケーションでロケールを変更するためのフラグ画像もあり、それをクリックすると、新しいロケールの変更ですべてをリロードしたいと考えています。

tabパネル内の 1 つのフォームで、captchaコンポーネントを使用していますが、再読み込みしたくありません。なぜなら、すべての再読み込みページがないと不可能だからです (部分的な Ajax の再読み込みをサポートしていないため、Recaptcha.reload()JS を使用して再読み込みの作業を行います)。

tabViewしたがって、名前付きのコンポーネントにネストされているすべてのコンポーネントをリロードしたいpanel...panelキャプチャなしで。

  • mytabViewはという名前のパネルにネストされていますpanel
  • 私のキャプチャにはIDがありますcaptcha

私の 2 つのロケール変更ボタンは次のとおりです。

<p:commandLink update="@(:panel:not(captcha))" rendered="#{locale.locale != 'fr'}">
    <h:graphicImage url="resources/images/flags/flag_fr.png" width="30" height="30" />
    <f:setPropertyActionListener target="#{locale.locale}" value="fr" />
</p:commandLink>
<p:commandLink update=":panel" rendered="#{locale.locale != 'en'}">
    <h:graphicImage url="resources/images/flags/flag_en.png" width="30" height="30" />
    <f:setPropertyActionListener target="#{locale.locale}" value="en" />
</p:commandLink>

属性内のセレクターの多くの組み合わせをテストしましupdateたが、成功しませんでした。

セレクターのアイデアはありますか?どうもありがとう

4

1 に答える 1

0

PFS を使用している場合、コンポーネントのクライアント ID を参照しています。たとえば、パネルのクライアント ID が の場合:panel、セレクターは になります@(#\\:panel)(セミコロンをエスケープする必要があります)。生成された html を調べて、コンポーネントの実際のクライアント ID を見つけます。コンポーネントが命名コンテナにある場合、コンテナの ID は子コンポーネントの ID の前に連結されます。たとえば、パネルがキャプチャのコンテナに名前を付けている場合、次のようになります@(#\\:panel:not(#\\:panel\\:captcha))。フォームもコンテナに名前を付けているため、おそらく ID はこれに近いものになるでしょう。

于 2013-01-08T11:27:09.893 に答える