Domanda

Quando uso di completamento automatico di JQuery e hardcode i valori di matrice nella pagina funziona meraviglioso; ma quello che devo fare è ottenere i valori di matrice sia da un web service o da una funzione pubblica dentro un controllore. Ho provato modo diverso e non riesco a farlo funzionare. Il più lontano ho ottenuto sta tirando i dati per una lunga serie e quando i risultati completi di auto sono forniti è la stringa lunga che corrisponde, che capisco il motivo.

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

qualcuno ha incontrato questo? Sto usando C #.

UPDATE: Il codice che segue è un passo in avanti ora sto ottenendo una matrice restituita, ma penso di elaborazione sbagliato sulla mia pagina.

  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);
    }
È stato utile?

Soluzione

In primo luogo, la sintassi un aspetto diverso di quanto mi sono abituato. Se si utilizza il widget di completamento automatico che fa parte di jQuery UI, quindi la sintassi di completamento automatico è come questo:

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

Così forse non si utilizza il completamento automatico che è incluso in jQuery UI?

Nel caso in cui tu sei ....
Secondo la documentazione per jQuery UI autocomplete , la fonte può essere una delle tre cose; una matrice, una stringa (URL), o una funzione. Se si tratta di un array, può essere oggetti o parole. Se gli oggetti, quindi ognuno dovrebbe esporre sia un label, o una proprietà value o entrambi.

Se è un URL, quindi dovrebbe restituire JSON conforme a uno dei formati di matrice. Ad esempio, dovrebbe restituire

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

o

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

Molto probabilmente si stanno recuperando qualcosa che non sia conforme a uno dei formati di cui sopra.

Vedere anche, questa risposta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top