Автозаполнение пользовательского интерфейса jQuery для выбора нескольких ключей / значений в ASP.NET - PullRequest
0 голосов
/ 27 июля 2010

Как мне справиться с выбором нескольких элементов с автозаполнением?Объекты, которые я возвращаю из своего веб-сервиса JSON, содержат идентификатор и метку. Идентификатор - это идентификатор сущности в базе данных, а метка - это некоторый текст, отображаемый для пользователя.

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

Теперь я хочу иметь несколько вариантов выбора.Я хочу иметь возможность вводить некоторый текст, получать выпадающий список автозаполнения, выбирать элемент и некоторые другие параметры, а затем нажимать кнопку «Добавить новый» или «Нравится», чтобы иметь возможность выбрать другой экземпляр.

Например, я набрал бы имя человека и получил бы выбор автозаполнения.Я бы выбрал человека, а затем ввел его возраст и нажал «Добавить».Идентификатор, имя и возраст человека будут где-то сохранены, чтобы я мог получить его на стороне сервера, когда отправлю ответ.

Я не совсем уверен, как это сделать?Я думаю о скрытом поле - я предполагаю, что многие скрытые поля с тем же именем / идентификатором появляются на стороне сервера в виде массива, который я затем могу использовать.Но я еще не пробовал это в ASP.NET.

Как вы справились с этой проблемой?

1 Ответ

0 голосов
/ 20 августа 2010

Ну, нет предложений.В конечном итоге я сделал это с помощью выбора автозаполнения, создав красивый стиль.Его текст содержит метку, он содержит элемент привязки, к которому я привязываю событие click, которое удаляет элемент при необходимости, и я использую API данных jQuery для хранения значения идентификатора в диапазоне.Этот диапазон добавляется в контейнер div, перед текстовым полем, которое я использую для автозаполнения.Я также связываю событие keyup с текстовым полем для проверки возврата на задний план - когда оно нажато и текстовое поле пусто, я удаляю последний элемент автозаполнения.Хотя это немного сложнее, поскольку к моменту нажатия события keyup символ, который был удален из текстового поля, уже был удален, поэтому я также сохраняю фактическое значение в событии keydown с помощью API jQuery и проверяюсобытие keyup.

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

Надеюсь, это поможет любому, кто ищет решение.

...