Pela segunda vez ao começar um novo projeto AspNet usando o extender AutoCompleteExtender para auto-sugerir valores num dropdown conforme se digita num textbox, eu tenho dificuldades em fazer o recurso funcionar.
Faço todas as chamadas, crio o webService, testo o webService, tudo OK mas,.. simplesmente na página ao digitar nada é sugerido.
Após apanhar muiiiiito, comparando minhas outras aplicações (onde o recurso está funcionando) com a nova, identifiquei sutis diferenças nas declarações dos webMethods e dos webServices e… sim eram esses os problemas. Para que eu não volte a esquecer, vou documentar aqui
Declaração do webService:
<WebService(Namespace:=“http://tempuri.org/”)> _ <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ <Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ <Script.Services.ScriptService()> _
Public Class AutoComplete
Inherits System.Web.Services.WebService
Declaração do webMethod (declaração é totalmente case-sensitive):
<WebMethod()> _
<Script.Services.ScriptMethod()> _
Public Function GetTerceiros( _
ByVal prefixText As String, _
ByVal count As Integer) As String()
Chamada no AspX:
<ajaxToolkit:AutoCompleteExtender
ID=”TerceiroAutoComplete”
runat=”server”
TargetControlID=”TerceiroTextbox”
ServicePath=”~/Common/AutoComplete.asmx”
ServiceMethod=”GetTerceiros”
MinimumPrefixLength=”1″
CompletionInterval=”1000″
CompletionSetCount=”20″
EnableCaching=”true”
Enabled=”true”
/>
Ah sim, mais uma coisa, no AspX os objetos devem estar dentro de um UpdatePanel, naturalmente.