Hi All,
I have search some documents from web and try to develope the autocomplete by myself. However, it can't work and I really can't find out what the problem is. Would someone give me some advice?
1. I have created a App_Code folder under my project manually
2. Created a AutoComplete.asmx under the App_Code folder
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace SHS.App_Code { /// <summary> /// Summary description for AutoComplete /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] [System.Web.Script.Services.ScriptService] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. // [System.Web.Script.Services.ScriptService] public class AutoComplete : System.Web.Services.WebService { public AutoComplete() { } [System.Web.Services.WebMethod] [System.Web.Script.Services.ScriptMethod] public string[] GetCompletion(string prefixText, int count) { if (count == 0) { count = 10; } List<string> tmp = new List<string>(count); Random rnd = new Random(); for (int i = 1; i < count; i++) tmp.Add(prefixText + rnd.Next(10).ToString() + rnd.Next(10).ToString() + rnd.Next(10).ToString()); return tmp.ToArray(); } } }
3. Create test2.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="test2.aspx.cs" Inherits="SHS.Views.temp.test2" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server"> <ajax:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> <Services> <asp:ServiceReference Path = "~/App_Code/AutoComplete.asmx"/> </Services> </ajax:ToolkitScriptManager> <div> <asp:Label ID="ErrMsg" runat="server" Text="Label"></asp:Label> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <ajax:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="TextBox1" ServiceMethod="GetCompletion" ServicePath="~/App_Code/AutoComplete.asmx" MinimumPrefixLength="2" CompletionInterval = "1" CompletionSetCount="10" EnableCaching="true"> </ajax:AutoCompleteExtender> </div> </asp:Content>