Comment ajax-mise à jour de la p:dataTable à partir de l'intérieur de la p:dataTable lui-même?
<h:form id="formId">
<p:wizard id="wizardId">
<p:tab id="tabId">
<p:dataTable id="tableId">
<p:column>
<h:commandLink value="remove" update=""/>
</p:column>
</p:dataTable>
</p:tab>
</p:wizard>
</h:form>
J'ai besoin de mettre à jour uniquement les <p:dataTable>
sans la totalité du formulaire.
J'ai essayé d'utiliser @form
, @parent
, :formId:wizardId:tabId:tableId
, mais aucun d'entre eux travaillent comme je veux. Lorsque j'utilise @form
, c'est la vérification de la validation qui je n'ai pas besoin de le faire.
Comment puis-je y parvenir?
OriginalL'auteur Cijo | 2012-09-20
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, ce sera en effet ne jamais travailler avec un
<h:commandLink>
, tout simplement parce qu'il ne prend pas en charge laupdate
attribut à tous. Peut-être que vous avez réellement voulu utiliser<p:commandLink>
?Une fois que vous avez fixé la
<h:commandLink>
être un<p:commandLink>
, alors à la tête de cette réponse: Comment trouver l'ID client composant ajax pour mettre à jour/render? Impossible de trouver le composant avec l'expression "foo" référencé à partir de "bar" pour apprendre à référence des composants JSF, ajax.Après avoir lu cette réponse, vous devriez constater que le datatable est dans cet extrait de code identifiés par
:formId:tableId
. Alors, tous avec tous, ce qui suit devrait faire:Noter qu'il y a jusqu'à PrimeFaces 3.3 un bug dans ajax-mise à jour de la
<p:dataTable>
dans certains complexes de l'INTERFACE utilisateur compositions. C'est fixe dans PrimeFaces 3.4. Si vous rencontrez ce problème et ne peut pas mettre de PrimeFaces 3.4, puis vous auriez besoin de mettre la table dans certains<h:panelGroup id="tablePanelId">
et ensuite utiliserupdate=":formId:tablePanelId"
à la place.<p:commandLink>
j'ai mal orthographié comme<h:commandLink>
j'ai eu la solution par un déplacement de mon datatable à<h:panelGroup>
Vous êtes les bienvenus.
OriginalL'auteur BalusC