Sayfam, <ui:repeat>
kullanarak bir öğe listesi üzerinde yinelenerek oluşturulan birkaç alandan oluşur. Bu bir basit örneği düşünün:JSF 2.0: UI'de tek bir öğeyi yeniden oluşturma/güncelleştirme: AJAX kullanarak yineleme yineleme
<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>
Şimdi, yeniden işlemek istiyorum (yalnızca) AJAX kullanarak bu listeye içinde belirli elemanın ait valueContainer
(diyelim ki, dizin 1'e sahip eleman). Çünkü,
- Bir mutlak tanımlayıcı yol ile yeniden işlemek bileşeni tanımlamak gerekir:
<!-- 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"/>
Benim gereksinimleri
şunlardır: Zaten olmadan herhangi bir şans bu kombinasyonlardan her denedi güncellemesini tetikleyen düğme, ağacında, bileşen ağacında tamamen farklı bir yerdedir. bu tür I MTU/AJAX hiç kullanıyorum neden gündeme koyar çünkü - ihtiyacım
- ..., sayfanın tamamını veya (
@all
/@form
kullanarak) formunu bana yararsız edilir Yeniden render PrimeFaces<p:dataGrid>
hücreleri ile aynı şeyi elde etmek için (yani, belirli bir hücrenin sadece belirli bir alt bileşenini güncelleştirin), ancak bunun aynı soruna indirgendiğini varsayalım.
Şu anda baktığım şu an için kolay bir çözüm olmalı ?!
Maalesef için Autoupdate ayarlamak, ama bu soruya nasıl cevap görmüyorum: – sleske