2010-03-10 8 views
1

Lorsque j'utilise la saisie semi-automatique de JQuery et que je code en dur les valeurs des tableaux dans la page, cela fonctionne parfaitement; mais ce que je dois faire est d'obtenir les valeurs de tableau à partir d'un service Web ou d'une fonction publique à l'intérieur d'un contrôleur. J'ai essayé de diverses manières et n'arrive pas à le faire fonctionner. Le plus loin que j'ai obtenu est de tirer les données dans une longue chaîne et quand les résultats complets automatiques sont fournis, c'est la longue chaîne qui correspond, ce que je comprends pourquoi.Jquery AutoComplete Plugin appelant

$("#TaskEmailNotificationList").autocomplete("http://localhost/BetterTaskList/Accounts/registeredUsersEmailList", { 
    multiple: true, 
    mustMatch: false, 
    multipleSeparator: ";", 
    autoFill: true 
    }); 

Quelqu'un at-il rencontré cela? J'utilise C#.

MISE À JOUR: Le Code ci-dessous est un pas en avant que je reçois maintenant un tableau retourné, mais je pense que je suis le traitement de ce mal sur ma page.

var emailList = "http://localhost/BetterTaskList/Account/RegisteredUsersEmailList"; 

    $("#TaskEmailNotificationList").autocomplete(emailList, { 
    multiple: true, 
    mustMatch: false, 
    multipleSeparator: ";", 
    autoFill: true 
    }); 

[HttpGet] 
    public ActionResult RegisteredUsersEmailList() 
    { 
     BetterTaskListDataContext db = new BetterTaskListDataContext(); 
     var emailList = from u in db.Users select u.LoweredUserName; 
     return Json(emailList.ToList(), JsonRequestBehavior.AllowGet); 
    } 

Répondre

2

D'abord, votre syntaxe est différente de ce à quoi je suis habitué. Si vous utilisez le widget autocomplete qui fait partie de jQuery UI, alors la syntaxe de saisie semi-automatique est comme ceci:

$("#input1").autocomplete({ 
     source: "http://localhost/Whatever" 
}); 

Alors peut-être que vous n'utilisez pas la saisie semi-automatique qui est inclus dans l'interface utilisateur jQuery?

Dans le cas où vous êtes ....
Selon the documentation for jQuery UI autocomplete, la source peut être l'une des trois choses; un tableau, une chaîne (URL) ou une fonction. S'il s'agit d'un tableau, il peut s'agir d'objets ou de mots. Si les objets, alors chacun devrait exposer soit un label, ou une propriété value ou les deux.

S'il s'agit d'une URL, il doit renvoyer le format JSON conforme à l'un des formats de tableau. Par exemple, il doit retourner

[ "albatross", "bison", "cayman", "duck", ...] 

ou

[ { "label": "albatross", "value": "72" }, 
    { "label": "bison", "value": "24" }, 
    ... 
] 

Très probablement, vous récupérez quelque chose qui ne se conforme pas à l'un des formats ci-dessus.

Voir aussi, this answer

+0

J'utilise ce plugin autocomplete http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/ qui, si je ne me trompe pas, il est une extension de la fonction jquery autocomplete. La question que vous m'avez posée pour éclaircir mon problème, maintenant je dois trouver comment retourner un tableau correctement structuré. Merci. –

+0

Non, vous vous trompez. Le plugin bassistance est un plugin différent, pas une extension du plugin jQuery UI. – Cheeso