获取多页会议工作区的页面

时间:2009-03-20 10:23:01

标签: sharepoint moss sitetemplate

我目前在多页会议工作区模板上进行一些测试,以检查它是否适合我们作为项目基础模板的需要。

您可能知道,多页会议工作区旨在管理单个工作区中的多个日期,并显示仅与特定日期相关的页面或应在每个日期显示的页面。

如果使用SharePoint Designer检查多页会议工作区,则可以看到有一个库,其中包含工作区的所有页面。每个日期显示的页面都存储在根文件夹中,仅在单个日期显示的页面存储在以相应日期命名的文件夹中。

所以现在我们来解决我的问题。为了设置每个日期显示的单个页面的权限,我遍历页面库以找到我想要更改权限的页面。奇怪的是,库的ListItemCollection假装包含我期望它包含的页数。但是当我然后迭代集合时,它只返回附加到实际日期的页面。它既不返回应在每个日期显示的页面,也不返回其他日期的页面。

我已经尝试使用SPSecruity.RunWithElevatedPrivilges()以及模拟作为系统帐户来获取页面。我还尝试通过命令行应用程序获取它们,而不使用任何上下文信息。似乎行为,您只能获取与特定日期相关的项目,后面跟着对象模型。

那么无论实际日期如何,我怎样才能得到多页会议工作区的所有页面?

2 个答案:

答案 0 :(得分:1)

您可以通过编程方式在工作区创建时刻和事件集权限上捕获事件。您可能想了解有关event receiverssetting permissions programmatically的更多信息。

您提到的那些页面是添加到名为“会议系列”的列表中的项目 alt text http://img22.imageshack.us/img22/8963/ss20090528181724.png

它包含以下字段:

alt text http://img22.imageshack.us/img22/351/ss20090528181819.png alt text 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

答案 1 :(得分:0)

仅当用户尝试访问这些事件时,才会创建此类事件的页面。这是设计的,我找到的唯一解决方案是尝试通过网站(或某些模拟)访问页面,然后尝试通过代码访问它们。

关于Flo的评论,我在Microsoft Sharepoint 2007 Development上释放了这个来源(sams,ISBN 0-672-32903-4)。在第101页上说:

  

注意

     

从定期会议中获取数据   可能很棘手。你可能会遇到   代码尝试的情况   访问会议的列表项   尚未发生的事件   在会议系列中提供   名单。确保个人   实例已经创建,你可以   向网站提出虚拟网页请求   实例的主页,例如:   http://server/sites/mymeeting/default.aspx?InstanceID=20061012

如果您找到另一种方式,请发布它将为我们节省很多精力!!!