Sharepoint: изменение макета страницы и типа контента для конкретной страницы

У меня есть макет страницы в решении, которое я развернул. С макетом страницы также связан пользовательский тип контента.

Я хочу обновить макет этой страницы и тип контента, но только для определенного места на сайте. Причина в том, что для важных "обновлений операций" мы хотим иметь возможность отправлять SMS-сообщения подписанным пользователям (встроенная функция Sharepoint для списков), а также отправлять их по электронной почте.

Это работает так, что я хочу добавить логическое поле, которое решает, отправлять SMS или нет, и поле для ввода адресов электронной почты, которые вы хотите уведомить о сообщении.

Мой подход до сих пор был:

  • Создайте получатель событий, который проверяет, выбраны ли поля / заполнены, и выполняет фактическую отправку.
  • Измените страницу макета с помощью 2 новых полей.
  • Измените тип содержимого с помощью 2 новых полей.

Тем не менее, я боюсь осложнений для остальной части сайта. На данный момент будущее использование макета страницы не является проблемой, только существующие применения.

Я знаю, что обновление типа контента с помощью определений XML не происходит автоматически, так что с этой стороны я в безопасности, но как мне сохранить страницу макета "содержащейся" для конкретной рассматриваемой страницы?

РЕДАКТИРОВАТЬ: Как мне показать два поля только при редактировании страницы, а не при ее отображении? В настоящее время мой сайт разработки показывает форму редактирования в самый раз, но когда я иду, чтобы показать страницу, он показывает "да", где находится логическое поле, и любые адреса электронной почты, введенные там, где поле электронной почты.

1 ответ

Решение

Вы уверены, что макет страницы связан с типом контента, и что это не страница, связанная с типом контента?

Если вы хотите, чтобы поля добавлялись автоматически, вы можете:

  1. Создайте пользовательский шаблон рендеринга, который будет использоваться формами New/Edit/Display для вашего списка (http://weblogs.asp.net/sharadkumar/archive/2008/07/07/how-to-customize-rendering-of- SharePoint-список форм-поля-часть-1.aspx)

  2. Создайте собственный ListFieldIterator (или используйте по умолчанию), который будет автоматически подбирать новые поля в вашем типе контента (http://msdn.microsoft.com/en-us/library/aa543922.aspx)

  3. Используйте код в DLL для итерации по полям вашего типа контента и, таким образом, создайте необходимые элементы управления для вашей страницы в коде. Если вы используете FieldControls (http://msdn.microsoft.com/en-us/library/dd571480.aspx), он автоматически создаст шаблон отображения по умолчанию для поля (т. Е. Отобразит переключатели, выпадающие списки, и т.д., как определено полями в типе контента).

При редактировании, когда вы говорите "при редактировании страницы", я предполагаю, что вы имеете в виду "при просмотре страницы редактирования для списка", а не "при редактировании определения страницы в Sharepoint Designer".

Предполагая, что это предположение является точным, вы можете сделать так, чтобы на странице редактирования списка отображалось нечто совершенно отличное от страницы просмотра списка (и от новой страницы списка). По умолчанию страницы определены полностью отдельно и редактируются совершенно отдельно. Однако, если вы используете что-то (например, ListFieldIterator), которое автоматически выбирает список полей для типа контента, вы можете создать пользовательский элемент управления Field для полей, которые вы хотите скрыть, и задать шаблон представления для элемента управления Field. ничего не отображать.

Другие вопросы по тегам