2012-03-12 15 views
0

を形成し、私は例外に更新Primefacesコンポーネント*:*

を防止し、Primefaces 3.1に移行しながら、コンポーネントの更新コードを修正する方法について尋ねた質問を見てきました識別子を持つコンポーネントを見つけることができません"...." ビューで。

しかし、フォーム要素で囲まれていないコンポーネントを更新するにはどうすればよいですか?このような私は、リモートコマンドを使用して、更新する必要があるとして、次のようouputPanel: -

<p:outputPanel id='messageBox''> 
    ... 
</p:outputPanel> 

使用: と Primefaces 3.1 JSF 2.1.6

答えて

2

ちょうどその絶対クライアントIDでそれを参照代わりに。 update属性は、デフォルトでは現在のUINamingContainerコンポーネント(<h:form>はそのようなコンポーネント)に対して相対的です。指定された<p:outputPanel>が他のUINamingContainerコンポーネントの内部に存在しないと仮定すると、update=":messageBox"を使用してください。

<p:commandButton ... update=":messageBox" /> 

あなたがわからない場合、あなたはそれから、ブラウザでページを開くソースの表示を行うと、そこに<p:outputPanel id="messageBox">の生成されたHTML要素を探し、そのid属性の正確な値を取るとする必要がありますデフォルトの命名コンテナのセパレータ:の接頭辞を付けます。

+0

を更新するためのコード下記のように使用し、"<h:form>"コンポーネントの一意のIDを指定しますページコードのマイナーな変更。代わりに、ここでの答えに記述されているように 'binding'アプローチを使うべきでしょうか?:http://stackoverflow.com/questions/7970268/using-one-component-datatable-id-inside-composite-component –

+0

すべての' UINamingContainer'コンポーネントは固定IDです。例えば。 ''このようにして、JSFはJSFを自動生成しません。 – BalusC

+0

ありがとうございます。しかし、私はまだ拘束力のあるアプローチがすべてのコンポーネントにidsを与えるよりむしろ好まれない理由について興味がありますか? :) –

0

、私はあまりにも多くはそれが作ることに変わりとして直接JSFを使用して、ソースから見て、IDを生成好まないコンポーネント

udpate="@(#messageBox)" 
+0

OPがフォームに一意のIDを付ける理由を説明してください。またOPがこれに対して通常のクライアントIDではなくPFSを使用する理由を説明してください。 – BalusC

関連する問題