如何在SharePoint列表上自动启用内容审批?

时间:2009-01-07 23:01:04

标签: sharepoint configuration

我正在尝试创建一个功能,同时创建列表模板和该列表的实例(使用<ListTemplate&gt;和<ListInstance&gt;元素。我想要内容审批默认情况下打开。根据docs on ListTemplate,将EnableModeration属性设置为TRUE应该这样做。但是,当我尝试安装解决方案时,我收到以下错误:

  

'EnableModeration'属性是   无效 - 值“TRUE”无效   根据其数据类型   'http://schemas.microsoft.com/sharepoint/:TrueFalseMixed'    - 枚举约束失败。

更多搜索显示接受的值实际上是“真”,而不是“真”。安装得很好,但是在创建列表时似乎没有效果 - 它仍然不需要内容批准。知道我做错了吗?

编辑:如果有人甚至可以向我确认他们之前是否看过“真实”或“真实”,那至少会缩小搜索范围。

更新:我发现我可以使用功能接收器中的代码启用内容审批:

list.EnableModeration = true;
list.Update();

这有点像黑客,所以能够通过XML来做到这一点仍然很好。

5 个答案:

答案 0 :(得分:2)

我最后只使用了功能接收器方法,因为我只需要继续前进。但是,我后来发现用于定义列表架构的List element也具有ModeratedList和ModerationType属性,看起来它们可能与此有关。因此,如果其他人遇到同样的问题,我建议给他们一个机会。

答案 1 :(得分:1)

您的自定义列表中是否包含“ModStat”类型的字段?

  

ModStat指定内容审批   状态。对应于   SPFieldModStat类和   指定的ModStat字段类型   在Field元素上。值= 23。

来自SPFieldType Enumeration docs

答案 2 :(得分:1)

我为List元素设置ModeratedList =“TRUE”ModerationType =“TRUE”,为ListTemplate元素设置EnableModerate =“True”。这个对我有用。那么使用TRUE或True都无关紧要。

答案 3 :(得分:1)

您只需为List元素设置ModeratedList =“TRUE”,为ListTemplate元素设置EnableModerate =“True”。我只是检查了一下,并为我工作。但是这只会受到新列表实例的影响。

答案 4 :(得分:0)

我有类似的问题 - 从代码中启用版本控制和审核。

ListInstance中,转到<ListTemplate>并设置以下属性: VersioningEnabled="TRUE"用于版本控制,EnableModeration="True"用于自动审核。

链接:http://msdn.microsoft.com/en-us/library/ms462947.aspx