2017-09-10 2 views
3

J'utilise PrimeFaces et j'ai une ligne:p: mise à jour ajax d'identité qui n'existe pas

<p:ajax update="toUpdate"> 

le problème est que cet ID existe pas toujours sur la page. (la page est dynamique et parfois elle contient une partie qui a cet ID spécifique et parfois non) Quand il existe, ça marche très bien, mais quand l'ID n'existe pas, le composant plante - (c'est probablement un problème de validation)

Comment puis-je résoudre ce problème?

Est-ce un problème connu?

Merci!

+0

qu'avez-vous mea * ID n'existe pas *? –

+0

pouvez-vous expliquer aussi * L'ID est dynamique et n'existe pas toujours *? –

+0

@YCF_L Désolé. Je l'ai mis à jour. Est-ce clair maintenant? – Dvir

Répondre

1

Vous devez fournir un élément toujours rendu à mettre à jour, par exemple:

<p:ajax update="toUpdate"> 

<h:panelGroup id="toUpdate"> 

    <p:dataTable id="tableID" rendered="#{bean.someCondition>"... 

</h:panelGroup> 

Donc, si vous avez un composant qui peut être, ne pas utiliser o ou non visible pour la mise à jour, parce que peut être hors de l'arbre des composants. Au lieu de cela, utilisez un composant (conteneur) que vous êtes sûr d'être rendu et présent dans l'arborescence des composants.

0

Essayez ce code

<f:ajax render="toUpdate"> 

    <h:outputText id="toUpdate"> 

     <!-- do something --> 

    </h:outputText> 
+1

Votre réponse est presque identique à l'autre mais vous voulez imbriquer des choses (composants?) dans un 'h: outputText'. Ce n'est pas une bonne suggestion. – Kukeltje