SharePoint 2010 - Настройка рендеринга и поведения поля списка - PullRequest
0 голосов
/ 21 июля 2011

В моем списке SharePoint есть столбец «Сотрудник», который является полем «Тип пользователя».Я хотел бы добавить несколько пользовательских бизнес-логики для обработки этого поля.В настоящее время, когда пользователь добавляет строку, я проверяю, является ли пользователь Сотрудником или Менеджером, а затем соответствующим образом изменяю поведение в этом столбце.Я делаю это путем статического рендеринга поля в моем пользовательском «шаблоне визуализации ListForm», непосредственно перед моим пользовательским ListFieldIterator.Я просто использую стандартный элемент управления SharePoint FormField (и FormLabel).В разметке элемента управления FormField я указываю FieldName (Employee) и обработчик события для события Load.В этом событии Load я проверю, является ли текущий пользователь Сотрудником или Менеджером (используя две разные группы SharePoint).Если пользователь является Сотрудником, я устанавливаю значение поля для текущего пользователя (эта часть работает отлично).Я также хочу изменить поле, чтобы оно не могло быть изменено.Я думал, что смогу просто изменить ControlMode для поля (в коде обработчика событий OnLoad) на Display, но по какой-то причине это не имеет никакого эффекта.Поле по-прежнему отображается с полным редактором выбора людей.Я не изменяю режим управления полями достаточно скоро?Или это просто не правильный подход?Другая логика, которую я хочу добавить, заключается в том, что если пользователь является менеджером, я бы хотел, чтобы этот пользователь мог выбрать этого человека из списка (группа SharePoint) сотрудников.Возможно, будет проще просто использовать средство выбора людей и ограничить количество выбранных пользователей этой группой.(Я думаю, что я могу сделать это с помощью свойства SelectionGroup.) Хотя было бы лучше, если бы я мог просто предоставить раскрывающийся список пользователей, что я мог бы сделать со скрытым раскрывающимся списком, который я покажу, и обработчиками событий, которые я мог бы использовать (обработать событие selectedindexcessed), чтобы извлечь выбранное значение и заполнить (теперь скрытое) поле Employee (user).Имеет ли этот подход смысл?Предполагая, что все это будет работать, реальная трудность, с которой я сталкиваюсь, заключается в том, чтобы изменить ControlMode (рендеринг) на поле (когда пользователь является сотрудником) на метку или какой-то элемент управления только для чтения, как это поле отображает при просмотре.Строка, вот почему я думаю, что если я смогу обмануть элемент управления, думая, что он находится в режиме отображения, то он должен работать отлично!

Я все еще изучаю SharePoint, но я очень хорошо владею ASP .Net.Вот почему я хотел бы сохранить свои настройки в этом пользовательском шаблоне рендеринга, используя код и максимально эффективно использовать свой существующий набор навыков.

Есть какие-нибудь мысли, мнения или советы?Кто-нибудь знает, почему я не могу заставить колонку переключать «Режим управления»?

1 Ответ

0 голосов
/ 22 июля 2011

Не думаю, что я полностью понимаю ваш сценарий. Некоторые примеры кода могут помочь.

Но в любом случае это звучит так, как будто вы хотите выполнить некоторые пользовательские настройки. В этом случае вы можете захотеть взглянуть на создание настраиваемого поля со всеми его преимуществами и недостатками. Посмотрите на MSDN: http://msdn.microsoft.com/en-us/library/gg132914.aspx

Другой вариант может быть - в случае, если вы не хотите повторно использовать этот столбец во многих определениях списка - вы можете использовать свой собственный шаблон рендеринга и создать пользовательскую форму создания / редактирования, где вы реализуете определенное поведение редактирования для поля (обычный ASP.NET с некоторыми элементами управления SharePoint). Вот хороший обзор того, как получить пользовательскую форму редактирования из конструктора SharePoint: http://community.bamboosolutions.com/blogs/sharepoint-2010/archive/2011/05/12/sharepoint-2010-cookbook-how-to-create-a-customized-list-edit-form-for-development-in-visual-studio-2010.aspx

Надеюсь, это поможет. Кр., Бернд.

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