sql >> Database >  >> RDS >> Sqlserver

JQuery automatisch aanvullen met database

zo werkt jQuery Autocomplete niet,

jQuery autocomplete verzendt automatisch de tekst die in het tekstvak is ingevoerd naar de locatie die u opgeeft in een querystring "term" die u opent in webmethode of handler zoals deze

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

zoiets als dit

              [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;
        }
    }
}

dit komt op je .aspx-pagina

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

BEWERKEN:

Ik heb dit nog nooit gedaan in de webmethode , ik gebruik meestal een handler .ashx , maar dit zou net zo goed moeten werken.

als je dat allemaal hebt veranderd, start je de site in debug-modus, begin je in het tekstvak te typen en pas je op f12 en kijk je naar het verkeer dat dit veroorzaakt - als je "abc" typt, zou het eruit moeten zien

Admin_home.aspx/GetAutoCompleteData?term=abc

dan zal het antwoord waar je misschien een beetje mee moet spelen , standaard .net "d :..." toevoegen aan het antwoord aan de clientzijde , maar je kunt het bekijken en dienovereenkomstig aanpassen

Nog een bewerking:

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

is niet wat je in de jQuery zet

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

het zou moeten zijn

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

Nog een andere bewerking:

Er ontbreekt een enkel aanhalingsteken

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

vervangen door

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


  1. Krijg gebruikers commentaar van Mysql met behulp van Php

  2. Case met doctrine2, symfony2 en postgresql-entiteiten

  3. MySQL Een lijst met waarden opvragen

  4. Snelste manier om rij in SQL te klonen