Typeahead i et names felt

I XPages er det nemt at lave typeahead. Her er vist et eksempel på et names felt der laver opslag til adressebogen på serveren:

<xp:inputText value="#{document1.manager}" id="manager">
	<xp:typeAhead mode="partial" minChars="1" ignoreCase="true">
	<xp:this.valueList><![CDATA[#{javascript:@Name("[Abbreviate]",
@DbLookup("names.nsf", "($VIMPeople)",getComponent("manager").getValue() ,1,"[PARTIALMATCH]")
)}]]></xp:this.valueList>
	</xp:typeAhead>
</xp:inputText>
Note: af en eller anden grund virker Partial refresh ikke på min server – men det virker på andre servere? Full refresh virker dog fint…
Bemærk
  • at der benyttes en @DbLookup (ok ikke en DbColumn) – dermed undgå vi at hente flere data end nødvendigt.
  • hvis koden skal virke i Notes klienten, så skal der angives et servernavn – ellers laves opslag til den lokale adressebog
  • Du kan få koden forklaret i denne video: A license to type ahead
Fejlsøgning
  • Koden er lavet som ServerSide JavaScript – og det kan ikke debugges 🙁
  • Da koden kører som et AJAX kald – så kan du ikke umiddelbart se evt. fejlbeskeder. Det virker bare ikke/der sker ikke noget når du indtaster i feltet.
  • Hvis du vil se fejlbeskeden, så tast F12 (vis debugger) i din Chrome browser og vælg ‘Network’ tab – så kan du se retur værdier fra AJAX kaldet.
I ovenstående eksempel vil typeahead funktionen blot vise en liste med matchende navne. Du har dog også mulighed for at lave det rigtigt lækkert – og også vise billede, afdeling, telefonnr m.v. i typeahead listen. Prøv at se nogle at disse eksempler:

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

*