我们有一个特定的业务需求,我们需要允许用户在Wiki库中创建Wiki页面,但限制他们将Web部件添加到Wiki页面。如果我们为用户提供对Wiki库的访问权限,则用户可以通过单击“插入”添加Web部件并添加现有Web部件。
有没有人知道让用户能够通过编辑来为页面内容做出贡献,而不是将网页部件添加到页面中?
由于
答案 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
}
}