Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Jquery AutoComplete với cơ sở dữ liệu

đó không phải là cách jQuery Autocomplete hoạt động,

jQuery autocomplete tự động gửi văn bản được nhập trong hộp văn bản đến vị trí bạn chỉ định trong chuỗi truy vấn "thuật ngữ" mà bạn truy cập nó trong webmethod hoặc trình xử lý như thế này

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

một cái gì đó như thế này

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

điều này xuất hiện trong trang .aspx của bạn

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

CHỈNH SỬA:

Tôi chưa bao giờ thực sự làm điều này trong phương pháp web, tôi thường sử dụng trình xử lý .ashx, nhưng điều này sẽ hoạt động tốt.

khi bạn đã thay đổi tất cả, sau đó chạy trang web ở chế độ gỡ lỗi, bắt đầu nhập vào hộp văn bản và vừa với f12 và xem lưu lượng truy cập mà điều này đang gây ra - nếu bạn nhập "abc", nó sẽ giống như

Admin_home.aspx / GetAutoCompleteData? Term =abc

thì phản hồi mà bạn có thể phải xử lý một chút, theo mặc định .net sẽ thêm "d:...." vào phản hồi phía máy khách, nhưng bạn có thể xem và điều chỉnh nó theo cách phù hợp

Chỉnh sửa khác:

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

không phải là những gì bạn đặt trong jquery

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

nó phải là

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

Tuy nhiên, một chỉnh sửa khác:

Điều này thiếu một trích dẫn duy nhất

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

thay thế bằng

         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. Mục đích sử dụng OPTION (MAXDOP 1) trong SQL Server là gì?

  2. Mức độ bảo vệ đã thay đổi giữa dự án - bây giờ dự án sẽ không được xây dựng

  3. Sử dụng cột TIME của SQL Server 2008 trong khai báo lớp

  4. Chờ kết nối đóng trước khi khôi phục cơ sở dữ liệu SQL Server

  5. Làm thế nào để bắt đầu công việc SQL Server từ một thủ tục được lưu trữ?