autocomplete textbox using ajax in asp.net

  • First register the Ajax control toolkit in .aspx page like below.
          <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit"
           TagPrefix="cc1" %>

  • Put the ToolkitScriptManager from Ajax Control Toolkit in .aspx page.
        <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </cc1:ToolkitScriptManager>
  • Now assign the ajax control "AutoCompleteExtender" to theTextBox. 
          <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
          <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
                   TargetControlID="TextBox1" CompletionInterval="1000" 
                   MinimumPrefixLength="0" EnableCaching="True"
                   CompletionSetCount="1" ServiceMethod="GetCountries">
          </cc1:AutoCompleteExtender>

  • Now create the service method for fetch data from database as per textbox requirement in .aspx.cs page.
          using System.Web.UI.WebControls;

          [System.Web.Services.WebMethod]
          public static List<string> GetCountries(string prefixText)
          { 
                SqlConnection con = new SqlConnection("connection string") ;
                con.Open();

                SqlDataAdapter da = new SqlDataAdapter("select * from tblCountry
                where CountryName like '" +  prefixText + "'+'%'", con);

                DataTable dt = new DataTable();
                da.Fill(dt);
                con.Close();
            
                List<string> CountryNames = new List<string>();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                        CountryNames.Add(dt.Rows[i][1].ToString());
                }
                return CountryNames;
          }