Вызов плагина автозаполнения Jquery - PullRequest
1 голос
/ 11 марта 2010

Когда я использую автозаполнение JQuery и жестко кодирую значения массива на странице, это прекрасно работает;но мне нужно получить значения массива из веб-службы или из общедоступной функции внутри контроллера.Я пробовал разные способы и не могу заставить его работать.Самое длинное, что я получил, - это вытягивание данных в длинную строку, а когда результаты автозаполнения предоставляются, то совпадает длинная строка, и я понимаю, почему.

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

кто-нибудь сталкивался с этим?Я использую C #.

ОБНОВЛЕНИЕ: Приведенный ниже код является шагом вперед. Теперь я получаю возвращенный массив, но мне кажется, что я неправильно обрабатываю его на своей странице.

  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);
    }

1 Ответ

2 голосов
/ 11 марта 2010

Во-первых, ваш синтаксис выглядит иначе, чем я привык. Если вы используете виджет автозаполнения, который является частью пользовательского интерфейса jQuery, то синтаксис автозаполнения выглядит следующим образом:

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

Так, может быть, вы не используете автозаполнение, включенное в пользовательский интерфейс jQuery?

В случае, если вы ....
Согласно документации по автозаполнению пользовательского интерфейса jQuery , источник может быть одним из трех; массив, строка (URL) или функция. Если это массив, это могут быть объекты или слова. Если объекты, то каждый должен предоставлять либо свойство label, либо value, либо и то и другое.

Если это URL, то он должен вернуть JSON, соответствующий одному из форматов массива. Например, он должен вернуть

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

или

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

Скорее всего, вы извлекаете что-то, что не соответствует ни одному из указанных выше форматов.

См. Также, этот ответ

...