Hola fieles lectores,
Después de pelear con este sencillo componente del AjaxControlToolkit, por fin he conseguido que funcione…
Os voy a dar las claves para que lo consigáis también:
Primero:
Entiendo que tenéis un proyecto en Visual Web Developper 2008 Express Edition, ó (supongo que también rulará) con Visual Studio 2008.
Segundo:
Agregamos la referencia al proyecto al AjaxControlToolKit
Tercero:
En el archivo ASPX añadimos las siguientes líneas:
Al principio:
<!--Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp"-->
Dentro de la etiqueta form:
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></asp:ToolkitScriptManager>
Donde queremos poner un AutoCompleteExtender:
<asp:AutoCompleteExtender runat="server" ID="AutoCompleteExtender" TargetControlID="txt1" ServiceMethod="ObtenerLista" ServicePath="~/_funciones.asmx" /> <asp:TextBox ID="txt1" runat="server" />
Cuarto:
En el punto 3 hemos visto que estamos llamando a un Servicio Web (parámetro ServicePath) y a una función (parámetro ServiceMethod). Pues bien, creamos ese servicio web en el mismo proyecto con el nombre “_funciones.asmx” (o cualquier otro nombre que os mole más).
Este es el código (mínimo) necesario para el servicio web:
Imports System.Web.Services Imports System.Web.Services.Protocols Imports System.ComponentModel
<System.Web.Script.Services.ScriptService()> _ <System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _ <System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ <ToolboxItem(False)> _ Public Class _funciones_utillaje Inherits System.Web.Services.WebService
<WebMethod()> _ <System.Web.Script.Services.ScriptMethod()> _ Public Function ObtenerLista(ByVal prefixText As String, ByVal count As Integer) As String() Dim Tabla(3) As String Tabla(0) = "registro 0" Tabla(1) = "registro 1" Tabla(2) = "registro 2" Tabla(3) = "registro 3" Return Tabla End Function
End Class Con estos 4 pasos funciona. Si un día tengo tiempo pondré alguna captura de pantalla. Saludos!!


