2009-07-16 4 views
1

L'implémentation de la saisie semi-automatique présente de nombreuses variantes. J'ai d'abord réalisé une implémentation WPF très robuste, chaque entrée contenant des mots clés, donc lors de la recherche d'un employé. Si vous avez tapé le prénom ou le nom de famille, les résultats sont similaires à Google Suggest. Ce que j'ai trouvé limitant à la fois dans la complétion automatique JQquery et l'extendeur de remplissage automatique ASP.Net est qu'il n'y a pas de recherche par mot-clé, ou contient des fonctionnalités, il utilise simplement une recherche de type "Startswith". Par exemple, pour rechercher "Mark Adams" comme nom de portée, vous devez taper M, a, r, etc. Si vous avez tapé A, d, etc., aucun résultat ne retournera.Extenseur de saisie semi-automatique dans Ajax Toolkit et JQuery limitant à "Commence par"

Est-ce que quelqu'un sait des plans pour cela? Y at-il quelque chose là-bas en ce moment?

+0

Vérifiez la modification de Ajax ToolKit. – simplyharsh

Répondre

1

Vous devez avoir manqué jquery option autocomplete comme

matchContains:true 

Il fait exactement ce que vous voulez. Il correspond à Mark Adams, lorsque vous tapez A, etc. d

Modifier

Et pour ajaxToolkit AutoCompleteExtender, je crains que vous ne recevez pas une option équivalente de matchContains en jquery. Mais vous pouvez le faire facilement dans la méthode de service. Définissez-le comme ...

ServiceMethod="GetNameList" 

où GetNameList contient toute la logique de la correspondance des données. Par exemple.

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(); 
    } 
} 

La ligne de code ci-dessous correspond à la correspondance.

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

Merci harshh, y a-t-il quelque chose d'équivalent pour ajaxtoolkit AutoCompleteExtender? –

Questions connexes