2010-11-05 31 views
1

J'essaie d'utiliser la saisie semi-automatique JQuery, mais je suppose que j'ai du mal à obtenir le format attendu de mon gestionnaire.JQuery UI Autocomplete et Generic Handler (ashx) - C# ASP.NET

Voici ce que fait le gestionnaire. C'était dans une autre question SO ....

context.Response.ContentType = "text/plain"; 
var companies = GetCompanies(); //This returns a list of companies (List<string>) 

foreach (var comp in companies) 
{ 
    context.Response.Write(comp + Environment.NewLine); 
} 

Cela ne fonctionne pas. Il est définitivement appelé et il retourne ce que j'attendrais ce code pour revenir. Des idées?

Répondre

1

La réponse doit être au format JSON. Voir http://docs.jquery.com/UI/Autocomplete où il explique en utilisant une chaîne qui spécifie une URL.

+0

Alors je suppose http://stackoverflow.com/questions/305994/jquery-autocomplete -and-asp-net utilise un plugin au lieu de l'interface utilisateur JQuery ... OOps – Jason

6

Il doit être au format JSON en effet, ici un échantillon du plan général je avant:

class AutoCompleteEntry 
    { 
     public int id { get; set; } 
     public string label { get; set; } 
     public string value { get; set; } 
    } 

    private void GetAutoCompleteTerms() 
    { 
     Response.Clear(); 
     Response.ContentType = "application/json"; 

     //evaluate input parameters of jquery request here 

     List<AutoCompleteEntry> autoCompleteList= new List<AutoCompleteEntry>(); 
     //populate List of AutocompleteEntry here accordingly 

     JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); 
     string json = jsSerializer.Serialize(autoCompleteList); 
     Response.Write(json); 
     Response.End(); 
    }