SharePoint 2010 Wiki页面库 - 限制在Wiki页面中插入Web部件

时间:2013-09-30 18:46:23

标签: sharepoint sharepoint-2010 wiki sharepoint-wiki

我们有一个特定的业务需求,我们需要允许用户在Wiki库中创建Wiki页面,但限制他们将Web部件添加到Wiki页面。如果我们为用户提供对Wiki库的访问权限,则用户可以通过单击“插入”添加Web部件并添加现有Web部件。

有没有人知道让用户能够通过编辑来为页面内容做出贡献,而不是将网页部件添加到页面中?

由于

1 个答案:

答案 0 :(得分:0)

如果您可以添加自定义代码,则可以为Wiki的列表项ItemUpdating事件创建事件接收器功能,以检查是否存在Web部件并取消保存并显示消息。< / p>

列表的事件接收器将基于模板触发所有列表(因此在所有情况下都是wiki库)如果您只想在单个实例上操作,那么修改下面的示例代码以检查您的wiki库实例想要控制。

public override void ItemUpdating(SPItemEventProperties properties)
        {               
            base.ItemUpdating(properties);                      
            SPListItem item = properties.ListItem; //get the list item being updated
            string pageUrl = item.Url; //get the item url for the web part manager
            SPLimitedWebPartManager lwpm = properties.Web.GetLimitedWebPartManager(pageUrl, PersonalizationScope.Shared); //get the web part manager
            if (lwpm.WebParts.Count > 0) //test for the presence of any web parts
            {
                properties.Cancel = true; //cancel the save
                properties.ErrorMessage = "WebParts are not allowed on this wiki page."; //display message to the user
            }
        }