sql >> Databasteknik >  >> RDS >> Sqlserver

Jquery AutoComplete med databas

det är inte så jQuery Autocomplete fungerar,

jQuery autocomplete skickar automatiskt texten som skrivs in i textrutan till den plats du anger i en frågesträng "term" du kommer åt den i webbmetod eller hanterare så här

         string input = HttpContext.Current.Request.QueryString["term"];

något sånt här

              [WebMethod]
public static List<string> GetAutoCompleteData(string Car)
{
    string input = HttpContext.Current.Request.QueryString["term"];
    List<string> result = new List<string>();
    using (SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CarsConnectionString"].ConnectionString))
    {
        using (SqlCommand cmd = new SqlCommand("select DISTINCT Car from T_Car where Car like '%'+ @SearchText +'%", con))
        {
            con.Open();
            cmd.Parameters.AddWithValue("@SearchText", input);
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                result.Add(dr["Car"].ToString());
            }
            return result;
        }
    }
}

detta finns på din .aspx-sida

    $(".ui-autocomplete").autocomplete({
        source: "Admin_home.aspx/GetAutoCompleteData",
        select: function (event, ui) { }
      });

EDIT:

Jag har faktiskt aldrig gjort det här i webbmetoden, jag använder vanligtvis en hanterare .ashx, men det här borde fungera lika bra.

när du har ändrat allt, kör sedan webbplatsen i felsökningsläge, börja skriva i textrutan och passa f12 och titta på trafiken som detta orsakar - om du skriver "abc" ska det se ut som

Admin_home.aspx/GetAutoCompleteData?term=abc

sedan kommer svaret du kanske måste leka med lite, som standard kommer .net att lägga till "d:...." till svaret på klientsidan, men du kan titta på det och justera efter det

Ännu en redigering:

         <asp:Textbox ID="query" class="ui.autocomplete">

är inte vad du lägger i jquery

          $(".ui-autocomplete").autocomplete({

det borde vara

         <asp:Textbox ID="query" class="ui-autocomplete">

Ännu en redigering:

Detta saknar ett enda citat

        using (SqlCommand cmd = new SqlCommand("select DISTINCT Car from T_Car where Car like '%'+ @SearchText +'%", con))

ersätt med

         using (SqlCommand cmd = new SqlCommand("select DISTINCT Car from T_Car where Car like '%'+ @SearchText +'%' ", con))


  1. PHP Konvertera mysql till mysqli

  2. MySQL VARCHAR Lengths och UTF-8

  3. Ger PDO fetch() ett undantag vid misslyckande?

  4. Fördelar och nackdelar med att implementera en hybrid molnmiljö