Средство выбора людей для MVC3

Я ищу элемент управления выбором людей, похожий на элемент управления SharePoint для приложений MVC3.

Не могли бы вы подсказать, доступны ли такие элементы управления?

Как лучше всего выбрать людей из AD в MVC3?

Требование: в одном из представлений мне нужно выбрать пользователя из AD.

Я думал о контроле над People Picker.

Спасибо Арун


person Arun    schedule 24.07.2012    source источник


Ответы (1)


Я знаю, что это довольно давно, поэтому я сомневаюсь, что вам все еще нужен ответ, но, возможно, он будет полезен кому-то другому.

Буквально на прошлой неделе мне пришлось создать такой элемент управления, как это делает для нас. По сути, это две основные части: служба JSON, которая принимает частичный текст и возвращает список предложений, и элемент управления HTML / CSS / jQuery + UI.

Сервис довольно прост, поэтому мы пропустим это здесь.

Я делаю write-up на веб-стороне, но в основном мы обернули автозаполнение jQuery с помощью некоторого настраиваемого CSS, чтобы сделать ввод, похожий на адресную строку в GMail. Это было сделано путем стилизации контейнера div так, чтобы он выглядел как длинное поле ввода. Фактическое поле ввода находится внутри этого контейнера и стилизовано так, чтобы быть практически невидимым. Щелчок по контейнеру перемещает фокус в поле ввода. После выбора предложенного имени я создаю новый контейнер для вставки перед «замаскированным» вводом автозаполнения, который содержит имя пользователя и скрытый ввод с желаемым значением для отправки при отправке формы. Мне пришлось сделать несколько других перегрузок для автозаполнения, чтобы заставить его работать согласованно, но по сути это все, что нужно было сделать.

Элемент управления ищет в контейнере атрибут data-input-name, чтобы выяснить, какое «имя» установить для скрытых входов, когда они создаются при выборе каждого пользователя. Когда форма отправляется, связыватель модели по умолчанию свертывает всех пользователей определенного средства выбора (поскольку у вас может быть несколько на странице) в строковые массивы значений - при условии, что ваша модель имеет свойства строкового массива с тем же именем, что и ввод элементы управления, которые затем мы можем обработать на стороне сервера.

Безусловно, самым сложным было найти правильный HTML + CSS, чтобы добиться правильного внешнего вида. Я не очень сильный пользователь пользовательского интерфейса, так что это заняло у меня вечность, и я все еще терплю неудачу в Chrome, который, кажется, добавляет акцент вокруг полей ввода даже со стилями (или из-за?), Которые заставляют его сливаться с родительским элементом управления.

Для наших целей последнюю неделю он отлично работал.

ОБНОВЛЕНИЕ: теперь оно на GitHub с Демо.

person Erik Noren    schedule 11.02.2013
comment
Привет, Эрик, спасибо за ответ. Что ж, хотя он соответствует базовой функциональности, вам может потребоваться расширить плагин для интеграции с AD или некоторыми другими поставщиками и т. Д., Которые настроены в приложении ASP.NET. Но если вы сможете расширить этот плагин для общих поставщиков удостоверений, я думаю, это обогатит ваш плагин и может быть полезным для многих из нас. Кстати, большое спасибо за ваш плагин. - person Arun; 01.03.2014
comment
Определенно можно было бы использовать некоторые обновления. В моем офисе мы используем его в приложениях MVC, и я написал несколько классов, упрощающих использование в этой среде. Однако последние обновления пользовательского интерфейса jQuery действительно испортили стили. Я полагался на нашего дизайнера, чтобы тот помог мне с редизайном, чтобы также включить множественный выбор результатов. - person Erik Noren; 01.03.2014
comment
Что касается конкретных исходных данных, я не понимаю, как браузер JavaScript может напрямую запрашивать AD. Вам нужно будет передавать свои запросы через службу независимо от того, какую технологию пользовательского интерфейса вы используете. Мы смешиваем AD и хранилище данных. Мы просто используем действия ASP.NET MVC и JsonResult для возврата данных. Я использую один класс как для обслуживания параметров автозаполнения, так и в качестве модели для связывателя для получения выборок. - person Erik Noren; 01.03.2014