我们有一个特定的业务需求,我们需要允许用户能够在 Wiki 库中创建 Wiki 页面,但限制他们将 Web 部件添加到 Wiki 页面。如果我们为用户提供对 Wiki 库的访问权限,则用户可以通过单击“插入”来添加 Web 部件并添加现有的 Web 部件。
有谁知道让用户能够通过编辑页面内容来为页面内容做出贡献,但不能向页面添加 Web 部件?
谢谢
我们有一个特定的业务需求,我们需要允许用户能够在 Wiki 库中创建 Wiki 页面,但限制他们将 Web 部件添加到 Wiki 页面。如果我们为用户提供对 Wiki 库的访问权限,则用户可以通过单击“插入”来添加 Web 部件并添加现有的 Web 部件。
有谁知道让用户能够通过编辑页面内容来为页面内容做出贡献,但不能向页面添加 Web 部件?
谢谢
如果您可以添加自定义代码,您可以为 wiki 的列表项事件创建事件接收器功能,ItemUpdating
以检查 Web 部件的存在并取消保存并显示消息。
如果您只想对单个实例进行操作,则列表的事件接收器将为基于模板的所有列表(因此在您的情况下为所有 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
}
}