题
我目前对多页会议工作区模板进行了一些测试,以检查它是否符合我们作为项目基本模板的需求。
您可能知道,多页面会议工作区旨在能够管理单个工作区中的多个日期,并显示仅与特定日期相关的页面或应在每个日期出现的页面。
如果您使用 SharePoint Designer 检查多页面会议工作区,您可以看到有一个包含工作区所有页面的库。每个日期显示的页面都存储在根文件夹中,仅在单个日期显示的页面存储在以相应日期命名的文件夹中。
现在我们来谈谈我的问题。为了设置每个日期显示的单个页面的权限,我遍历页面库以查找要更改权限的页面。奇怪的是,该库的 ListItemCollection 假装包含我期望它包含的页数。但是,当我迭代该集合时,它只返回附加到实际日期的页面。它既不返回应在每个日期显示的页面,也不返回其他日期的页面。
我已经尝试使用 SPSecruity.RunWithElevatedPrivilges() 并模拟系统帐户来获取页面。我还尝试通过命令行应用程序获取它们,而不使用任何上下文信息。对象模型似乎也遵循这样的行为:您只能获取与特定日期相关的项目。
那么,无论实际日期如何,我怎样才能获取多页会议工作区的所有页面???
解决方案
对于这类事件的页面只有当用户试图访问他们获得创造。这是由设计,而且我发现唯一的解决办法是试图通过网站(或某些仿真)访问该网页,然后试图通过代码来访问它们。
关于Flo的评论,我发现那位微软SharePoint 2007的这个源发展如虎添翼(SAMS,ISBN 0-672-32903-4)。在页码101表示:
注意
从定期会议获得数据 可能会非常棘手。您可能会遇到 情况,即你的代码的企图 访问列表项的会议 发生,目前尚未得到 供应在会议系列 名单。为了确保个人 实例已经被创建,您可以 让虚拟的网络请求 实例的主页,例如: HTTP://server/sites/mymeeting/default.aspx实例id = 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