#jsf #richfaces #render #rerender
#jsf #richfaces #визуализировать #повторный запуск
Вопрос:
У меня есть следующий код на моей странице:
<a4j:repeat value="#{tdController.cu.esaDoutCUConsigment.esaDoutCUDepartureArrivalTransport.transportMeans}" var="transportMean" rowKeyVar="idx">
<tr>
<td>
<rich:autocomplete id="transportMeansInactiveCountry#{idx}" mode="cachedAjax"
autocompleteMethod="#{countryList.autoComplete}"
minChars="1" layout="grid"
var="country" fetchValue="#{country.code}" width="50px"
inputClass="autoCompleteWidth20"
immediate="true" autofill="true"
value="#{transportMean.country}"
converter="com.enfasis.eced.common.controller.converter.CountryConverterAutoComplete">
<h:outputFormat value="{0}({1})">
<f:param value="#{country.name}"/>
<f:param value="#{country.code}"/>
</h:outputFormat>
<a4j:ajax event="selectitem" execute="@this"
render="transportMeansInactiveCountryCode#{idx}"/>
</rich:autocomplete>
<h:outputText id="transportMeansInactiveCountryCode#{idx}"
value="#{transportMean.country.name}" style="margin-left:5px"/>
</td>
...
</a4j:repeat....
в цикле a4j: repeat я динамически устанавливаю идентификатор, добавляя индекс строки в конце имени идентификатора, например id =»transportMeansInactiveCountryCode #{idx}».
Но когда я устанавливаю идентификаторы таким образом, повторное отображение элемента с id=»transportMeansInactiveCountryCode#{idx}» не работает.
Как я могу решить эту проблему?
Ответ №1:
Я думаю, вам нужно удалить индекс из атрибута ID. Он автоматически генерируется с индексом для вас.
чтобы проверить это, запустите свою страницу, а затем просмотрите исходный HTML-код страницы. вы обнаружите, что идентификатор компонента выглядит как <form_name>-<id>-<index>
Примечание: попробуйте вложить свой aj: повторите в стороне a