jsf 2.0 f:ajax rendre ID not found
Lorsque le bouton Enregistrer dans la fenêtre contextuelle(pp1) cliqué sur la liste des projets est mise à jour.
Mais lorsque vous appuyez sur le bouton mettre à jour dans la liste des projets, le rendu ID :form1:pp1 n'y est pas d'erreur vient quand son rendu. Si render="@tous", il fonctionne, mais il n'est pas bon.
( erreur : <f:ajax>
contient un inconnu id ':form1:pp1')
<h:form id="form1" prependid=false>
<h:panelGroup id="projects">
<ui:repeat var="action" value="#{dadadada}" varStatus="status">
<h:commandButton value="Save">
//gives id not found error
<f:ajax event="click" execute="@form" render=":form1:pp1" listener="#{fsfsfsfsfs}" />
</h:commandButton>
</ui:repeat>
</h:panelGroup> //project panel group
//popup
<h:panelGroup id="pp1">
<div id="popup2" class="popup_block">
//save button in the popup
<div class="popupBody_save2">
<h:commandButton image="resources/images/saveBtn.gif" value="Save">
<f:ajax event="click" execute="@form" render="projects" listener="#{dfsfssfs}" />
</h:commandButton>
</div>
</div>
</h:panelGroup>
</h:form>
OriginalL'auteur Amilask | 2011-05-10
Vous devez vous connecter pour publier un commentaire.
La
:form1:pp1
ne fonctionne pas puisque vous avezprependId="false"
sur la forme. Lepp1
ne fonctionne pas car il est alors à la recherche pour le composant dans le même champ d'application que<ui:repeat>
qui est par lui-même unUINamingContainer
composant.Ouvrir le JSF page dans le navigateur, faites un clic droit et l'Affichage de la Source pour obtenir le code HTML généré. Recherchez l'élément HTML qui est généré par
<h:panelGroup id="pp1">
. Il devrait ressembler à quelque chose comme ceciVous devez utiliser exactement cet ID avec le préfixe
:
dans lerender
attribut.Si il y a un générée automatiquement l'ID de la partie comme
j_id0
, alors vous avez besoin pour donner le composant parent en question un fixe ID.<span id="pp1">
qui je devrais être en mesure d'accéder à l'aide de render = ":pp1" n'est-ce pas? mais l'id peut toujours pas trouver l'élémentOriginalL'auteur BalusC
Si vous utilisez
prependId=false
votre panelGroup identifiant estpp1
au lieu deform1:pp1
. (Supposons qu'il y a une faute de frappe dans votre attribut "prependID" au lieu de "prependid")Regarder dans le code html généré source et essayer de trouver quel est le nom réel de votre panelGroup.
son pp1, j'ai essayé de rendre=":pp1", mais même résultats
OriginalL'auteur Matt Handy