# Autocomplete statt Drop Down



## x22 (18. Sep 2012)

Sers Leute, ich habe gerade ein Feld Geburtsort mit einer Drop down list, in der alle Orte angezeigt werden, die ich in einer Liste gespeichert habe.

Das funktioniert auch.. allerdings mit sehr langen Ladezeiten! (Verständlich bei über 8k Orten in der Liste).
Nun wollte ich das so handeln, dass ich statt der Drop Down List:


```
<p:selectOneMenu value="#{cc.attrs.person.geburtsOrt}" id="selectGeburtsOrt"
		label="#{msgs.gebort}" editable="true" filter="true" filterMatchMode="startsWith" >
			<f:selectItem itemLabel="" itemValue="" noSelectionOption="true" />
			<f:selectItems value="#{cc.attrs.orte}" var="o" itemValue="#{o}" itemLabel="#{o}"/>
		</p:selectOneMenu>
```


eine autocomplete Methode nehme.
Beispiel: man gibt St ein und es werden nur die Orte mit S geladen..
Ich benutze hierbei Primefaces, komme jedoch nicht so Recht mit der AutoComplete Methode klar :


```
<p:autoComplete id="selectGeburtsOrt" value="" completeMethod="#{cc.attrs.person.complete}"/>
```

Person sieht folgendermaßen aus:


```
public List<String> complete(String geburtsOrt){
		List<String> results= new ArrayList<String>();
		for(int i=0; i< 10; i++){
			results.add(geburtsOrt+1);
		}
		return results;
	}
```

Das ist nur ein "Pseudo Code", die Frage ist, wie stelle ich das nun mit der Liste an, die ich bei der Drop Down verwendet habe, und die auch funktioniert.

Best regards,
x22


----------



## x22 (18. Sep 2012)

Ich Schreibe mal meinen Vorschlag als Ausgangspunkt:

Die Liste heisst Orte.tab.


```
public List<String> complete("Orte.tab"){
		List<String> results= new ArrayList<String>();
		for(int i=0; i< Orte.tab.length; i++){
			results.add(Orte.tab[i]);
		}
		return results;
	}
```

x22


----------



## jwiesmann (19. Sep 2012)

Warum benutzt du 
	
	
	
	





```
cc.attrs.person...
```
 ?
Das benötigt man eigentlich nur für Composite Components. Darin eine Funktion aufzurufen ist nicht so wie in einer "normalen" JSF Page.

Probier es mal so: [XML]
<p:autoComplete id="selectGeburtsOrt" value="" completeMethod="#{cc.attrs.person['complete']}"/>
[/XML]


----------



## sence (22. Sep 2012)

schau mal auf der Primefaces Showcase Seite:
PrimeFaces - ShowCase

hier ist ein Beispiel für das Primefaces autocomplete
(konverter nicht vergessen!)


----------

