2009-07-16 12 views
1

Es gibt viele Varianten der AutoComplete-Implementierung, ich zuerst eine WPF-Implementierung, die sehr robust war, nahm jeder Eintrag Schlüsselwörter, so bei der Suche nach einem Mitarbeiter, tat es nicht Egal, ob Sie den Vor- oder Nachnamen eingegeben haben, die Ergebnisse sind ähnlich wie bei Google Suggest.Autocomplete Extender in Ajax Toolkit und JQuery auf "beginnt mit"

Was ich sowohl in der JQquery-Autovervollständigung als auch in der ASP.Net Autocomplete-Erweiterung gefunden habe, ist, dass es keine Schlüsselwortsuche gibt oder Funktionalität enthält, es verwendet einfach eine Suche vom Typ "Startswith".

Um beispielsweise nach "Mark Adams" als Mitarbeiternamen zu suchen, müssen Sie M, a, r usw. eingeben. Wenn Sie A, d usw. eingeben, wird kein Ergebnis zurückgegeben.

Kennt jemand von Plänen dafür? Gibt es gerade etwas da draußen?

+0

Überprüfen Sie die Bearbeitung für Ajax ToolKit. – simplyharsh

Antwort

1

Sie verfehlten jquery die automatische Vervollständigung Option wie

matchContains:true 

haben müssen Sie tut genau das, was Sie wollen. Es wäre für Mark Adams passen, wenn Sie einen Typ, d usw.

bearbeiten

Und für ajaxtoolkit AutoCompleteExtender, ich fürchte, dass Sie keine Option Äquivalent matchContains in jquery bekommt. Aber Sie können es leicht in Service-Methode tun. Stellen Sie es so ein ...

ServiceMethod="GetNameList" 

wo GetNameList die gesamte Logik enthält, wie die Daten übereinstimmen. Z.B.

public partial class _Default : System.Web.UI.Page { 
    [WebMethod] 
    public static string[] GetNameList(string prefixText, int count) { 
     string sql = String.Format("select name from customers where name like @given_name"); 

     List<string> nameList = new List<string>(); 
     using (SqlConnection connection = new SqlConnection("Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=.")) 
     using (SqlCommand command = new SqlCommand(sql, connection)) { 
      connection.Open(); 
      command.Parameters.AddWithValue("@given_name", "%"+prefixText"%"); 
      using (SqlDataReader reader = command.ExecuteReader()) { 
       while (reader.Read()) { 
        nameList.Add(reader.GetString(0)); 
       } 
      } 
     } 

     return nameList.ToArray(); 
    } 
} 

Die unten ist die Codezeile, die die Übereinstimmung durchführt.

command.Parameters.AddWithValue("@given_name", "%"+prefixText"%"); 
+0

Danke harshh, gibt es etwas Äquivalentes für Ajaxtoolkit AutoCompleteExtender? –

Verwandte Themen