Sharepoint: изменение макета страницы и типа контента для конкретной страницы - PullRequest
0 голосов
/ 17 ноября 2010

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

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

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

Мой подход был таким:

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

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

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

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

1 Ответ

0 голосов
/ 17 ноября 2010

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

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

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

  2. Создайте собственный ListFieldIterator (или используйте его по умолчанию) который автоматически подберет новый поля в вашем типе контента (* 1 010 *

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

В вашем EDIT, когда вы говорите «при редактировании страницы», я предполагаю, что вы имеете в виду «при просмотре страницы редактирования для списка», а не «при редактировании определения страницы в Sharepoint Designer».

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

...