You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by elias82 <el...@libero.it> on 2011/08/13 22:08:31 UTC

PartialSubmit on inputText and selectOneChoice does not work...

Hi everyone,
i try to create a simple filter with autocompletion.... A user put some text
in an inputText and when its lenght is greater than two words i use a DAO to
query the database in order to get a lot of suggestions to the user.... So
i'd like to refresh this suggestion (i use a selectonechoice component) when
i've got the result from the query and then to refresh the inputText when
the user select one of that choice...

My jsf page follows (i put only some components in this example):

		<h:form>
            <tr:panelFormLayout rows="11">           
                <tr:inputText label="Fornitore"
binding="#{FilterOrder.fornitore}" id="fornitore" immediate="true"
                  partialTriggers="fornitore suggestion"
valueChangeListener="#{FilterOrder.searchGoogleLike}" autoSubmit="true"/>
                <tr:selectOneChoice
                    label="Forse cerchi..."
                    id="suggestion"
                    autoSubmit="true"
                    immediate="true" 
					partialTriggers="suggestion fornitore"
                   
valueChangeListener="#{FilterOrder.setSuggestionAsChoice}"
                                   
binding="#{FilterOrder.forseCercaviSelect}">
                    <f:selectItems value="#{FilterOrder.suggestions}" />  
                </tr:selectOneChoice>                 
            </tr:panelFormLayout>
        </h:form>



An these are the backing bean methods that i invoke (i don't put the query
in this example):

	private SelectItem[] suggestions;
	
	public void setSuggestions(SelectItem[] suggestions) {
        this.suggestions = suggestions;
    }

    public SelectItem[] getSuggestions() {
        return suggestions;
    }
		
    public void searchGoogleLike(ValueChangeEvent valueChangeEvent) {
        if (((String)valueChangeEvent.getNewValue()).length() > 2) {
            SupplierLikeFilterDAO suppLikeDAO = new SupplierLikeFilterDAO();
            List<SupplierLikeFilterOrder> queryResult = new
ArrayList<SupplierLikeFilterOrder>();
           
queryResult.addAll(suppLikeDAO.listSupplierLike((String)valueChangeEvent.getNewValue()));
            suggestions = new SelectItem[queryResult.size()];
            for(int i=0; i<queryResult.size(); i++) {
                SelectItem si = new SelectItem(); 
                si.setValue(queryResult.get(i).getSupName());
                si.setLabel(queryResult.get(i).getSupName());
                suggestions[i] = si;
            }
        }
    }
    
    public void setSuggestionAsChoice(ValueChangeEvent valueChangeEvent) {
        this.fornitore.resetValue();
        this.fornitore.setValue(valueChangeEvent.getNewValue());
    }



With this code components refresh does not work.... any idea please???
:working:
-- 
View this message in context: http://old.nabble.com/PartialSubmit-on-inputText-and-selectOneChoice-does-not-work...-tp32257192p32257192.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.