so funktioniert jQuery Autocomplete nicht,
Die automatische Vervollständigung von jQuery sendet den in das Textfeld eingegebenen Text automatisch an die Stelle, die Sie in einem Abfragestring "Begriff" angeben, auf den Sie in einer Webmethode oder einem Handler wie diesem zugreifen
string input = HttpContext.Current.Request.QueryString["term"];
etwas in der Art
[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;
}
}
}
Dies kommt in Ihre .aspx-Seite
$(".ui-autocomplete").autocomplete({
source: "Admin_home.aspx/GetAutoCompleteData",
select: function (event, ui) { }
});
BEARBEITEN:
Ich habe das noch nie in der Webmethode gemacht, ich benutze normalerweise einen Handler .ashx , aber das sollte genauso gut funktionieren.
Wenn Sie all das geändert haben, führen Sie die Site im Debug-Modus aus, beginnen Sie mit der Eingabe in das Textfeld und passen Sie f12 an und beobachten Sie den Datenverkehr, den dies verursacht - wenn Sie "abc" eingeben, sollte es so aussehen
Admin_home.aspx/GetAutoCompleteData?term=abc
dann müssen Sie vielleicht ein wenig mit der Antwort spielen, standardmäßig fügt .net "d:...." zur Antwort auf der Client-Seite hinzu, aber Sie können es beobachten und entsprechend anpassen
Noch eine Bearbeitung:
<asp:Textbox ID="query" class="ui.autocomplete">
ist nicht das, was Sie in die jquery eingeben
$(".ui-autocomplete").autocomplete({
es sollte
sein <asp:Textbox ID="query" class="ui-autocomplete">
Noch eine weitere Bearbeitung:
Hier fehlt ein einfaches Anführungszeichen
using (SqlCommand cmd = new SqlCommand("select DISTINCT Car from T_Car where Car like '%'+ @SearchText +'%", con))
durch
ersetzen using (SqlCommand cmd = new SqlCommand("select DISTINCT Car from T_Car where Car like '%'+ @SearchText +'%' ", con))