Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Jquery AutoComplete с база данни

това не е начинът, по който jQuery Autocomplete работи,

Автоматичното довършване на jQuery автоматично изпраща текста, въведен в текстовото поле, до мястото, което сте посочили в „термин“ от низ на заявка, до който имате достъп в уеб метод или манипулатор като този

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

нещо подобно

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

това влиза във вашата .aspx страница

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

РЕДАКТИРАНЕ:

Всъщност никога не съм правил това в уеб метод, обикновено използвам манипулатор .ashx, но това трябва да работи също толкова добре.

когато промените всичко това, стартирайте сайта в режим на отстраняване на грешки, започнете да пишете в текстовото поле и поставете f12 и наблюдавайте трафика, който това причинява - ако въведете "abc", трябва да изглежда така

Admin_home.aspx/GetAutoCompleteData?term=abc

тогава отговорът, с който може да се наложи да си поиграете малко, по подразбиране .net ще добави "d:...." към отговора към клиентската страна, но можете да го наблюдавате и да коригирате съответно

Друга редакция:

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

не е това, което поставяте в jquery

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

трябва да е

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

И все пак, още една редакция:

Тук липсва една кавичка

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

заменете с

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не могат да се вмъкнат NULL стойности в колона „USERNAME“, таблица „tempdb.dbo.#temptable error

  2. SQL Server Management Studio – съвети за подобряване на процеса на кодиране на TSQL

  3. Как да покажете съпоставянето на база данни в SQL Server (T-SQL)

  4. SQL Server избира различни най-нови стойности

  5. Какви са най-добрите практики за използване на GUID като първичен ключ, по-специално по отношение на производителността?