我有一个SharePoint 2010服务器场。
我想创建一个DocumentLibrary
的自定义custom ContentType
。我在Visual Studio中创建了Listdefinitions
。
但是我想使用我只能在上传或创建新文档后填写的字段,然后才能编辑(但只读)。
属性ShowInNewForm和ShowInEditForm不适用于此,因为上传文档将始终使用EditForm。
我该如何安排?
答案 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修改字段。
---费达