Получить страницы многостраничной рабочей области для собраний
В настоящее время я провожу некоторые тесты в шаблоне рабочей области многостраничных собраний, чтобы проверить, соответствует ли он нашим базовым шаблонам для наших проектов.
Как вы, возможно, знаете, многостраничное рабочее пространство собраний предназначено для управления несколькими датами в одном рабочем пространстве и для отображения либо страниц, которые относятся только к определенной дате, либо страниц, которые должны появляться в каждой дате.
Если вы изучите многостраничную рабочую область собрания с помощью SharePoint Designer, вы увидите, что есть библиотека, которая содержит все страницы рабочей области. Страницы, отображаемые на каждую дату, хранятся в корневой папке, страницы, отображаемые только на отдельные даты, хранятся в папках, имена которых имеют соответствующую дату.
Итак, теперь мы подошли к моей проблеме. Чтобы установить разрешение для отдельной страницы, отображаемой на каждую дату, я перебираю библиотеку страниц, чтобы найти страницу, для которой я хочу изменить разрешения. Как ни странно, ListItemCollection библиотеки притворяется, чтобы содержать количество страниц, которые я ожидал, что она будет содержать. Но когда я перебираю коллекцию, он возвращает только те страницы, которые прикреплены к фактической дате. Он также не возвращает страницы, которые должны отображаться на каждую дату, а также страницы на другие даты.
Я уже пытался получить страницы с помощью SPSecruity.RunWithElevatedPrivilges() и с олицетворением в качестве системной учетной записи. Я также пытался получить их через приложение командной строки, не используя никакой контекстной информации. Кажется, что за поведением, что вы можете получить только те предметы, которые относятся к определенной дате, также следует объектная модель.
Итак, как я могу получить все страницы рабочей области для нескольких страниц независимо от фактической даты???
2 ответа
Страницы для такого рода событий создаются только тогда, когда пользователь пытается получить к ним доступ. Это сделано специально, и единственное решение, которое я нашел, было попытаться получить доступ к странице через веб-сайт (или некоторую эмуляцию), а затем попытаться получить к ним доступ с помощью кода.
Что касается Комментария Фло, я нашел источник для этого на Microsoft Sharepoint 2007 Development, выпущенной (sams, ISBN 0-672-32903-4). на стр. 101 говорится:
ВНИМАНИЕ
Получение данных от повторяющихся встреч может быть сложным. Вы можете столкнуться с ситуациями, когда ваш код пытается получить доступ к элементу списка для события собрания, которое еще не было предоставлено в списке Серии собраний. Чтобы убедиться, что отдельный экземпляр был создан, вы можете сделать фиктивный веб-запрос к домашней странице экземпляра, например: http://server/sites/mymeeting/default.aspx?InstanceID=20061012
Если вы найдете другой способ, пожалуйста, опубликуйте его. Это сэкономит нам много сил!!!
Вы можете поймать событие в момент создания рабочей области и в событии установить права доступа программно. Возможно, вы захотите узнать больше о получателях событий или программных настройках разрешений.
Те страницы, которые вы упомянули, представляют собой элементы, добавленные в список под названием "Серия собраний", http://img22.imageshack.us/img22/8963/ss20090528181724.png
Он содержит следующие поля:
http://img22.imageshack.us/img22/351/ss20090528181819.png http://img22.imageshack.us/img22/7857/ss20090528181852.png
Пример данных из 1 элемента (не в том порядке, в котором упоминаются столбцы):
3 0x001C4383A41E441842A2A27CA249FED28F Meeting Series Recurrence 2009-05-28 18:11:20 2009-05-28 18:11:12 1073741823;#Sistēmas konts 1073741823;#Sistēmas konts 1 1 512 1.0 0 0 Recurrence Recurrence 3 100.000000000000 {A6E54DB5-3A60-464B-A9A0-D314B49C41E8} 3;#test2/Recurrence/Lists/Meeting Series/1_2.000 3;#test2/Recurrence/Lists/Meeting Series 3;#2009-05-28 18:11:20 3;#2009-05-28 18:11:20 3;#0 0x7fffffffffffffff 3;#1_2.000 3;#{6BE299E5-E81F-40A8-80B2-41494DF0353C} 3;# 3;#{965D0DB3-1AE0-4C23-B006-FB4FC1FE1AB7} 1_2.000 3 1_2.000 1_2.000 /test2/Recurrence/Lists/Meeting Series/1_2.000 http://test:10000/test2/Recurrence/Lists/Meeting%20Series/1_2.000 1_2 3;# 1 1 2 {D8839339-6DDA-48A6-B3B7-FBCA58C8B436} 2009-06-03 19:00:00 2009-06-03 19:00:00 (null) (null) (null) 0 1 (null) 0 0 0 2009-05-28 18:10:57 (null) http://test:10000/test2/Lists/Calendar, Kalendārs 2009-06-03 19:00:00