sql >> Databáze >  >> RDS >> Sqlserver

Jquery AutoComplete s databází

takto automatické dokončování jQuery nefunguje,

Automatické doplňování jQuery automaticky odešle text zadaný do textového pole na místo, které určíte v řetězci dotazu „termín“, ke kterému přistupujete pomocí webové metody nebo obslužného nástroje, jako je tento

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

něco takového

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

to jde na vaši stránku .aspx

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

EDIT:

Ve skutečnosti jsem to nikdy nedělal webovou metodou, obvykle používám handler .ashx, ale tohle by mělo fungovat stejně dobře.

až budete mít vše změněno, spusťte web v režimu ladění, začněte psát do textového pole a vložte f12 a sledujte provoz, který to způsobuje - pokud napíšete "abc", mělo by to vypadat takto

Admin_home.aspx/GetAutoCompleteData?term=abc

pak odpověď, se kterou si možná budete muset trochu pohrát, ve výchozím nastavení .net přidá k odpovědi na straně klienta "d:...", ale můžete ji sledovat a podle toho upravovat

Další úprava:

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

není to, co jste vložili do jquery

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

mělo by to být

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

Přesto další úprava:

Chybí zde jediný citát

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

nahradit

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


  1. Hromadné vložení do SQL Server CE

  2. Použití IF EXISTS s CTE

  3. Najděte připojení hodnot sloupců

  4. Flask a SQLAlchemy způsobují v PostgreSQL mnoho IDLE v transakčních připojeních