それは jQuery オートコンプリートの仕組みではありません
jQuery オートコンプリートは、テキスト ボックスに入力されたテキストを、クエリ文字列「term」で指定した場所に自動的に送信します。このように webmethod またはハンドラーでアクセスします
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) { }
});
編集:
私は実際に Web メソッドでこれを行ったことはありません。通常はハンドラー .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))