Unlängst hatte ich die Aufgabe ein Suchformular mit einer Autocomplete-Funktion auszustatten. Third Party ist bei uns im Entwicklungsbüro verpönt (ausgenommen das eine zugekaufte Paket) also auf den AutocompleteExtender aus dem AJAX Control Toolkit gestürzt. Tutorials gesucht, gefunden und nachgebaut. Alles wunderbar? Mitnichten! Der Extender legt seltsame Verhaltensweisen an den Tag - unabhängig vom Browser…
Folgendes Szenario: einen sicher vorhandenen Suchbegriff vollständig eingetippt, gewartet bis Autocomplete anspringt, “Enter” Taste gedrückt ohne einen Vorschlag auszuwählen. Nichts. Kein Postback. Merkwürdig. Auch nicht über den Suchbutton.
Neuer Versuch, Seite neu geladen, diesmal den Suchbegriff nicht vollständig eingetippt, einen der Vorschläge angeklickt, Suchbutton geklickt. Aaaaah, Postback springt an. Schön. Suchbegriff ändern wollen. Kein Autocomplete mehr. Suchbutton noch mal geklickt, selbes Ergebnis wieder. Hääää?
Google konsultiert, ewig nach einer Lösung gesucht, schon beinahe alles gegen den JQuery Autocomplete austauschen wollen, bis, ja bis ich einfach mal um zu sehen WAS da eigentlich beim Callback passiert, das UpdatePanel rund um die Textbox und den Extender entfernt habe. Funktioniert! Wie kann das sein? ScriptManager zum Test herausgenommen: AutocompleteExtender meckert - will unbedingt einen ScriptManager. Also wieder zurück damit. Erneut kompiliert, published, im IE getestet, im Firefox getestet. Versucht die Fehler von vorhin zu reproduzieren - tauchen nicht wieder auf.
Ich weiß nicht warum, aber der AutoCompleteExtender funktioniert OHNE UpdatePanel auch! Eigentlich will ich auch nicht wissen warum es ohne geht, Hauptsache es tut. Basta!