Mi página consta de varias áreas que se crean al iterar sobre una lista de elementos utilizando <ui:repeat>
. Imagínese este ejemplo simplificado:JSF 2.0: Reproducción/actualización de un solo elemento en la interfaz de usuario: repetir utilizando AJAX
<h:form id="form">
<ui:repeat id="repeatContainer" var="item" value="#{testBean.items}" varStatus="status">
<h:outputText value="#{item.title}: "/>
<!-- I want to re-render only a single one of these fields -->
<h:outputText id="valueContainer" value="#{item.value}"/><br/>
</ui:repeat>
</h:form>
Ahora, quiero volver a hacer (sólo) la valueContainer
de un elemento específicodentro de esta lista usando AJAX (por ejemplo, el elemento con índice 1). Ya he probado todas estas combinaciones sin ninguna suerte:
<!-- Works, but renders all items: -->
<f:ajax render=":form"/>
<!-- This is what I actually want to achieve (does not work, comp. not found): -->
<f:ajax render=":form:repeatContainer:1:valueContainer"/>
<!-- Does not work (component not found): -->
<f:ajax render=":form:repeatContainer"/>
<!-- Does not work (component not found): -->
<f:ajax render=":form:repeatContainer:1"/>
<!-- Does not work (component not found): -->
<f:ajax render=":form:1"/>
<!-- Does not work (component not found): -->
<f:ajax render=":form:1:valueContainer"/>
<!-- Does not work (no error message, but does nothing): -->
<f:ajax render=":form:repeatContainer:valueContainer"/>
Mis requisitos son:
- necesito para identificar el componente de volver a hacer con un identificador absoluto ruta, porque el botón que activa la actualización está en algún lugar completamente diferente en el componente árbol.
- re-representación de toda la página o forma (usando
@all
/@form
) se inútil para mí, porque ese tipo de pone en tela de juicio por qué estoy usando JSF/AJAX en absoluto ... - Necesito para lograr lo mismo con las celdas PrimeFaces
<p:dataGrid>
(es decir, actualizar solo un subcomponente específico de una celda específica), pero supongo que esto reduce el mismo problema.
Supongo que debe haber una solución fácil a esto que actualmente estoy pasando por alto ?!
Lo sentimos, pero no veo la forma en que responde a la pregunta. Colocar el formulario en un p: outputPanel no ayudará a actualizar filas individuales. – sleske