rich: offertionbox отправляет частичную строку - PullRequest
1 голос
/ 22 февраля 2011

Я использую jsf 1.2, richfaces 3.3.2.По какой-то причине мой блок предложений отправляет введенное мною значение (он же строка предложения), а не то, что я щелкнул в открывшемся предложенном списке.Как мне это исправить?

                    <h:panelGroup>
                        <a4j:region renderRegionOnly="false" >
                            <h:panelGrid columns="2" border="0" cellpadding="0" cellspacing="0">
                                <h:inputText value="#{ManualReportControl.street}" id="streetNames" style="width:120px;" >
                                    <a4j:support event="onchange" reRender="streetGis" ></a4j:support>
                                </h:inputText>
                                <h:graphicImage value="/images/icons/arrow.png"
                                    onclick="#{rich:component('suggestionBoxStreet')}.callSuggestion(true)"
                                    alt="" />
                            </h:panelGrid>
                            <rich:suggestionbox id="suggestionBoxStreet" for="streetNames" 
                                suggestionAction="#{ManualReportControl.autocomplete}" 
                                var="street"
                                minChars="2" >
                                <h:column>
                                    <h:outputText value="#{street}" />
                                </h:column>
                            </rich:suggestionbox>
                        </a4j:region>
                    </h:panelGroup>

Ответы [ 2 ]

3 голосов
/ 23 февраля 2011

Понял! Я переместил a4j: support из inputText в SuggestionBox, и теперь он работает. Код:

                    <h:panelGroup id="streetNames">
                        <a4j:region renderRegionOnly="false" >
                            <h:panelGrid columns="3" border="0" cellpadding="0" cellspacing="0">
                                <coral:inputString value="#{ManualReportControl.street}" id="streetName" style="width:120px;" tabindexreal="13"/>
                                <h:graphicImage value="/images/icons/arrow.png"
                                    onclick="#{rich:component('suggestionBoxStreet')}.callSuggestion(true)"
                                    alt="" />
                            </h:panelGrid>
                            <rich:suggestionbox id="suggestionBoxStreet" for="streetName" 
                                suggestionAction="#{ManualReportControl.autocomplete}" 
                                var="street"
                                minChars="2" selfRendered="true" >
                                <h:column>
                                    <h:outputText value="#{street}" />
                                </h:column>
                                <a4j:support event="onselect" reRender="streetGis" ></a4j:support>
                            </rich:suggestionbox>
                        </a4j:region>
                    </h:panelGroup> 
1 голос
/ 22 февраля 2011

Вероятно, это происходит потому, что событие onchange запускается до того, как будет сделан выбор.

...