Виджет autocomplete
Привет всем! Ребята помогите немного, я пока не очень разбираюсь в javascript и jQuery. Такая проблемка: поставил виджет autocomplete не могу понять как извлекать данные после обработки запроса на сервере.
Т.е. когда в методе обработки на сервере я возвращаю массив строк - все нормально работает(меню на страничке заполняется этим массивом). Но мне надо передать не массив строк а массив объектов. Когда я это делать мой autocomplete пуст(выдает пустой список). Собственно вопрос: как извлекать данные если я передаю не массив строк а массив объектов?(как на стороне клиента извлекать именно значения свойств объектов из которых состоит массив?). Заранее благодарен! Доп. информация: проэкт на asp.net mvc 3 версия библиотеки jquery: 1.11.4 custom браузер: Opera |
Nevermind,
пример обьекта который должен возвращать ваш сервер и обработка такого обьекта http://javascript.ru/forum/jquery/48...tml#post317509 |
Не могу понять как используя Ваш пример получить данные. Там у Вас массив прямо в коде объявлен. А как мне присвоить то что приходит от сервера в переменную data?
|
Цитата:
|
рони,
поставил функцию из примера, поменял item.name на item.Title (Title - это одно из полей моего класса). Ничего не изменяется. Все тоже самое- просто выпадает пустая полосочка (пустое меню). |
рони, ладненько, спасибо большое за помощь! Буду разбираться, читать теорию.
|
Nevermind,
нужен живой макет |
У меня вот такой код на клиенте:
<input style="margin-left:50px;" type="text" id="searcher" data-autocomplete-source='@Url.Action("Search", "Home")' /> <script type="text/javascript"> $(function () { alert("работает"); $("[data-autocomplete-source]").each(function () { var target = $(this); target.autocomplete({ source: target.attr("data-autocomplete-source") }); }); }); </script> ---------------------------------------------------------------------- '@Url.Action("Search", "Home")' - это адресс функции, которая генерирует данные на сервере. Вот код этой функции: public ActionResult Search(string term) { //формирую список обьектов моего класса List<SearchItem> result = new List<SearchItem>(); //основная выборка данных из базы данных с условием, которое получаем от клиента(string term) var recordresults = _datamanager.Record.GetAllRecords().Where(x => x.Title.Contains(term) || x.Text.Contains(term)) .Take(5) .ToList() .Select(x => new RecordSearch(x)); if (recordresults.Any()) { //добавление результатов в основной список, который будем отправлять клиенту result.AddRange(recordresults); } //возвращаем данные клиенту return Json(result, JsonRequestBehavior.AllowGet); } ----------------------------------------------------------------------- вот класс из экземпляров которого генерируется массив и отправляется клиенту: public class RecordSearch: SearchItem { //Сущность Record(у нее есть поля Title,Id...) Record Model; //конструктор класса public RecordSearch(Record model) { this.Model = model; } //ну и свойства public override int Id { get { return this.Model.Id_Record; } } public override string Title { get { return Model.Text; } } public override string CssClass { get { return "recordsearch"; } } public override string TypeName { get { return "Статья:"; } } } -------------------------------------------------------------- Просто я не могу понять как на jQuery достать данные из свойства обьекта, в какой функции это надо делать? Этот код будет работать если передавать не массив обьектов а массив строк. То есть на сервере все в порядке. На сколько я понял изначально в моем файле, который я скачал на сайте jQuery-ui 1.11.4.js там все уже прописано, все функции уже есть, только по умолчанию они расчитаны на массив строк. Как то так... |
Nevermind,
не помогу ваш код мне неизвестен |
Все равно спасибо. Буду учить javascript. =)
|
Часовой пояс GMT +3, время: 05:43. |