Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2015, 19:44
Новичок на форуме
Отправить личное сообщение для Nevermind Посмотреть профиль Найти все сообщения от Nevermind
 
Регистрация: 22.03.2015
Сообщений: 6

Виджет autocomplete
Привет всем! Ребята помогите немного, я пока не очень разбираюсь в javascript и jQuery. Такая проблемка: поставил виджет autocomplete не могу понять как извлекать данные после обработки запроса на сервере.
Т.е. когда в методе обработки на сервере я возвращаю массив строк - все нормально работает(меню на страничке заполняется этим массивом).
Но мне надо передать не массив строк а массив объектов. Когда я это делать мой autocomplete пуст(выдает пустой список).
Собственно вопрос: как извлекать данные если я передаю не массив строк а массив объектов?(как на стороне клиента извлекать именно значения свойств объектов из которых состоит массив?).

Заранее благодарен!

Доп. информация:
проэкт на asp.net mvc 3
версия библиотеки jquery: 1.11.4 custom
браузер: Opera
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2015, 19:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Nevermind,
пример обьекта который должен возвращать ваш сервер и обработка такого обьекта
autocomplete выводит список не там
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2015, 20:28
Новичок на форуме
Отправить личное сообщение для Nevermind Посмотреть профиль Найти все сообщения от Nevermind
 
Регистрация: 22.03.2015
Сообщений: 6

Не могу понять как используя Ваш пример получить данные. Там у Вас массив прямо в коде объявлен. А как мне присвоить то что приходит от сервера в переменную data?
Ответить с цитированием
  #4 (permalink)  
Старый 22.03.2015, 20:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от Nevermind
А как мне присвоить то что приходит от сервера в переменную data?
пример виджет autocomplete()
Ответить с цитированием
  #5 (permalink)  
Старый 22.03.2015, 21:08
Новичок на форуме
Отправить личное сообщение для Nevermind Посмотреть профиль Найти все сообщения от Nevermind
 
Регистрация: 22.03.2015
Сообщений: 6

рони,
поставил функцию из примера, поменял item.name на item.Title (Title - это одно из полей моего класса). Ничего не изменяется. Все тоже самое- просто выпадает пустая полосочка (пустое меню).
Ответить с цитированием
  #6 (permalink)  
Старый 22.03.2015, 21:33
Новичок на форуме
Отправить личное сообщение для Nevermind Посмотреть профиль Найти все сообщения от Nevermind
 
Регистрация: 22.03.2015
Сообщений: 6

рони, ладненько, спасибо большое за помощь! Буду разбираться, читать теорию.
Ответить с цитированием
  #7 (permalink)  
Старый 22.03.2015, 21:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Nevermind,
нужен живой макет
Ответить с цитированием
  #8 (permalink)  
Старый 22.03.2015, 22:40
Новичок на форуме
Отправить личное сообщение для Nevermind Посмотреть профиль Найти все сообщения от Nevermind
 
Регистрация: 22.03.2015
Сообщений: 6

У меня вот такой код на клиенте:

<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 там все уже прописано, все функции уже есть, только по умолчанию они расчитаны на массив строк. Как то так...
Ответить с цитированием
  #9 (permalink)  
Старый 22.03.2015, 22:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Nevermind,
не помогу ваш код мне неизвестен
Ответить с цитированием
  #10 (permalink)  
Старый 23.03.2015, 00:20
Новичок на форуме
Отправить личное сообщение для Nevermind Посмотреть профиль Найти все сообщения от Nevermind
 
Регистрация: 22.03.2015
Сообщений: 6

Все равно спасибо. Буду учить javascript. =)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с API вконтакте (виджет "Мне нравится") DynkanMaclaud Серверные языки и технологии 1 14.12.2014 14:36
Uncaught ReferenceError виджет вконтакте - что делать? swess Events/DOM/Window 1 18.09.2014 01:14
Виджет одноклассников через iframe borin55 Элементы интерфейса 3 06.08.2014 12:44
Виджет 2gis для сайта emulexx Ваши сайты и скрипты 1 03.09.2013 08:44
виджет с масштабированием - подскажите какой quazare Библиотеки/Тулкиты/Фреймворки 0 21.12.2010 09:41