Autocomplétion avec affichage de plusieurs champs dans une liste
Bonjour,
Sur un projet que je développe, je dois implémenter une fonction d'autocomplétion mais j'ai un problème que je n'arrive pas à résoudre.
Explication de la fonction : Lorsqu'un utilisateur entre l'identifiant d'un article dans une textbox (et plus précisément 2 chiffres), une liste déroulante doit s'afficher. Dans cette liste, on pourra visualiser les articles avec leur identifiant et leur désignation.
Pour le moment, je n'arrive qu'à afficher l'identifiant de l'article lorsque l'utilisateur tape 2 chiffres (une image pour illustrer le formulaire) :
http://imageshack.us/f/716/autocompleteok.jpg/
Problème : Dès que je veux afficher + d'informations dans ma liste déroulante, ma liste devient blanche !
Il suffit que j'ajoute un seul champ dans ma requête (ou que je sélectionne tous les champs) pour que l'autocomplétion affiche une liste blanche... Une image pour illustrer ce problème :
http://imageshack.us/photo/my-images...ompleteok.jpg/
Voici mon code Jquery :
Code:
1 2 3 4 5 6 7
| // Autocomplétion idArticle
$('.articles').autocomplete({
source: '<%= Url.Action("GetArticles") %>',
datatype: 'json',
minLength: 2,
scroll: true
}); |
Ma méthode GetArticles se situant dans mon contrôleur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public JsonResult GetArticles(string term)
{
var listTcrefusi = (List<TCREFUSI>) articleRepository.GetRefusiByName(term);
log.Info("LISTE DES ARTICLES :");
foreach(TCREFUSI tcrefusi in listTcrefusi)
{
log.Info(tcrefusi.REFUSI + "--" + tcrefusi.DESREF);
}
return Json(listTcrefusi, JsonRequestBehavior.AllowGet);
} |
Ma requête SQL :
Code:
1 2 3 4 5 6 7 8 9 10
|
public Object GetRefusiByName(string name)
{
Object articles = (from TCREFUSI in _bce.TCREFUSIset.Where(tcref => tcref.REFUSI.StartsWith(name))
select TCREFUSI).ToList();
return articles;
} |
Pourtant, dans mes logs, ma requête fonctionne... Mais au niveau de l'affichage, rien de marche !
-> A noter qu'un objet "TCREFUSI" correspond concrètement à un article.
Si vous pouviez m'éclairer un peu sur le sujet... Merci