在Sharepoint中创建一次写入字段

时间:2012-03-22 13:14:07

标签: sharepoint sharepoint-2010

我有一个SharePoint 2010服务器场。

我想创建一个DocumentLibrary的自定义custom ContentType。我在Visual Studio中创建了Listdefinitions

但是我想使用我只能在上传或创建新文档后填写的字段,然后才能编辑(但只读)。

属性ShowInNewForm和ShowInEditForm不适用于此,因为上传文档将始终使用EditForm。

我该如何安排?

1 个答案:

答案 0 :(得分:0)

您可以在doclib中注册事件接收器和自定义 EditForm 表单。事件接收器类的ItemUpdating方法将确保在创建项目后,任何人(工具或页面)都无法通过SP对象模型修改字段:

public override void ItemUpdating(SPItemEventProperties properties)
{
    // Cancel the update according to the content of AfterProperties.
    properties.Cancel = true;
    properties.ErrorMessage = "...";
}

如果表单是第一次打开的话,自定义 EditForm 表单将在只读HTML元素中显示只读属性。好吧,你不一定需要这样做,因为表单中所做的任何更改都会被事件接收者拒绝,但是用户体验不会更好。实际上,如果您不需要针对SP OOM更改的安全性,您可以使用该表单;用户将无法仅通过SP UI修改字段。

---费达