Sharepoint 在SP 2007中生成内容类型时出错
我有一个事件处理程序,它捕获ItemAdding事件并动态更改内容类型。这是我构建内容类型的代码:Sharepoint 在SP 2007中生成内容类型时出错,sharepoint,events,Sharepoint,Events,我有一个事件处理程序,它捕获ItemAdding事件并动态更改内容类型。这是我构建内容类型的代码: SPContentType baseContentType = web.AvailableContentTypes["Folder"]; SPContentType type = new SPContentType(baseContentType, web.ContentTypes, "Custom Folder"); // Add fields to new content type AddF
SPContentType baseContentType = web.AvailableContentTypes["Folder"];
SPContentType type = new SPContentType(baseContentType, web.ContentTypes, "Custom Folder");
// Add fields to new content type
AddField(ref type, "User", "Owner");
AddField(ref type, "DateTime", "Date");
AddField(ref type, "Text", "Description");
AddField(ref type, "Text", "Justification");
AddField(ref type, "User", "Users");
list.ContentTypes.Add(type);
list.Update();
…剪断
void AddField(ref SPContentType contentType, string fieldType, string fieldName)
{
SPField field = new SPField(contentType.Fields, fieldType, fieldName);
if (fieldName.Equals("Users"))
((SPFieldUser)field).AllowMultipleValues = true;
field.Update();
contentType.Fields.Add(field); // Exception thrown here
SPFieldLink fieldLink = new SPFieldLink(contentType.Fields[fieldName]);
contentType.FieldLinks.Add(fieldLink);
contentType.Update();
}
在线:contentType.FieldLinks.AddfieldLink
我得到一个ArgumentNullException:值不能为null。参数名称:g
有人知道这意味着什么,或者知道我做错了什么吗?提前谢谢
堆栈跟踪:
在Microsoft.SharePoint.SPField.UpdateCoreBoolean bToggleSealed上
在Microsoft.SharePoint.SPField.Update上
在ChangeContentTypeEventHandler.ChangeContentTypeEventHandler.AddFieldsContentType&contentType,String fieldType,String fieldName
在ChangeContentTypeEventHandler.ChangeContentTypeEventHandler.ItemAddingSPItemEventProperties属性中,您的错误不在当前代码中。它在堆栈跟踪的下一步。你能发布一个完整的堆栈跟踪吗 编辑: 对于完整跟踪堆栈,这意味着内容类型当前正在使用。您最需要做的可能是指定级联选项 比如
contentType.updaterue,true感谢您的回复。我已将堆栈跟踪添加到原始问题。我对代码做了一些更改,对AddField方法做了一些更改,现在我在field上得到了一个SPException。更新:对于与列表无关的字段,此功能不可用