0

私のページには次のコードがあります。

    <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 名の末尾に行インデックスを追加して、ID を動的に設定しています。

しかし、私がそのようにIDを設定している場合、id="transportMeansInactiveCountryCode#{idx}" を使用した要素の再レンダリングは機能しません。

どうすればこの問題を解決できますか?

4

1 に答える 1

0

ID属性からインデックスを削除する必要があると思います。インデックスを使用して自動生成されます。

これを確認するには、ページを実行し、ページの HTML ソースを表示します。コンポーネント ID が次のようになっていることがわかります <form_name>-<id>-<index>

于 2012-03-23T20:48:39.213 に答える