đó 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))