2010-10-05 6 views
0

J'utilise un AutoCompleteExtender pour mon projet ASP.NET et il affiche les champs à afficher correctement. Toutefois, lorsque l'utilisateur choisit une suggestion de saisie semi-automatique, j'ai besoin de la fonction pour extraire un autre champ de la ligne (la colonne 'ID' qui est la clé primaire), en tant que champ nécessaire pour afficher les données pertinentes.AutoCompleteExtender questions

Voici mon code

public string[] GetAutoComplete(string prefixText) 
     { 
      int count = 10; 
      string sql = "SELECT * FROM SageAccount WHERE Name LIKE @prefixText"; 
      SqlDataAdapter da = new SqlDataAdapter(sql, "My Connection String(changed due to personal info being shown)"); 
      da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).Value = prefixText + "%"; 
      DataTable dt = new DataTable(); 
      da.Fill(dt); 
      string[] items = new string[dt.Rows.Count]; 
      int i = 0; 
      foreach (DataRow dr in dt.Rows) 
      { 
       items.SetValue(dr["Name"].ToString(), i); 
       i++; 
      } 
      return items; 
     } 

EDIT: Une partie du code modifié Je suis en train:

public string[] GetAutoComplete(string prefixText, int count) 
{ 
    string sql = "SELECT * FROM SageAccount WHERE Name LIKE @prefixText"; 
    SqlDataAdapter da = new SqlDataAdapter(sql, "Con string"); 
    da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).Value = prefixText + "%"; 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    List<string> Names = new List<string>(); 
    //string[] items = new string[dt.Rows.Count]; 
    int i = 0; 
    foreach (DataRow dr in dt.Rows) 
    { 
      Names.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(dr["Name"], dr["ID"].ToString()); 
     //items.SetValue(dr["Name"].ToString(), i); 
    } 
    return Names.ToArray(); 

La question que j'ai ici est que cela me donne l'erreur:

The best overloaded method match for 'AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItems(string, string)' has some invalid arguements'

Des idées? Merci beaucoup

Répondre

0

Je l'ai fait dans le passé en utilisant un champ caché pour enregistrer l'identifiant sélectionné. Découvrez HERE ou allez sur google et vérifiez comment utiliser un champ caché, je n'ai pas le code pour le moment.

EDIT 2: Vérifiez que vous attendez un paramètre int sur votre nouvelle méthode et que vous appelez en envoyant une chaîne. et .. vérifier que vous appelez une autre méthode appelée CreateAutoCompleteItems qui semble être des manques

+0

Cheers copain. J'ai mis à jour avec un peu plus de code parce que j'ai un peu de mal. – Chris