Авто полный расширитель со скрытым значением - PullRequest
0 голосов
/ 14 сентября 2009

На моей веб-странице есть автозаполнитель, который при вводе получает адресную информацию из базы данных. Мне нужно сделать два вызова в базу данных, один, чтобы получить список кратких описаний адресов, и другой, чтобы получить всю адресную информацию после выбора описания адреса. Чтобы сделать второй звонок, я получаю уникальный идентификатор от первого звонка (если это имеет смысл). Пока у меня есть автозаполнитель, который при вводе информации об адресе возвращает список описаний, и это нормально, но у меня нет возможности вернуть уникальный идентификатор (который я не хочу показывать пользователю) , Можно ли в любом случае вернуть уникальный идентификатор в веб-сервис, чтобы его не увидел пользователь?

1 Ответ

0 голосов
/ 23 сентября 2009

Я не совсем уверен, что вы имеете в виду или какой у вас уровень, так что это может быть не то, что вы ищете:

Когда вы выполняете (ajax?) Вызов сервера, чтобы получить список описаний, вы, вероятно, получите простой список обычных строк, представляющих возможные описания. Вместо использования простых строк, используйте что-то вроде JSON, где вы вводите id и name. Затем вы можете заполнить свой список автозаполнений, используя что-то вроде

foreach(var obj in suggestions)
    addToList(obj.Name);

Имейте коллекцию с оригинальными предложениями где-то в памяти (например, переменная «предложения»); и когда кто-то выбирает автоматически предложенный элемент, вы можете найти его обратно в исходном массиве.

foreach(var obj in suggestions)
    if(obj.Name == document.getElementById('suggestionTextbox').value) return obj.id;

С помощью идентификатора вы можете выполнить новый вызов базы данных, используя PageMethods или другие виды Ajax. При использовании PageMethods (Google для точного определения) используйте что-то вроде этого:

public static object GiveExtraInfo(string id)
{ //look up data in database and return the required object }

Затем вы можете сделать в JavaScript

var content = PageMethods.GiveExtraInfo(/*the id you selected before */);

Теперь вы можете использовать любой контент на странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...