我有一个自定义列表,可以包含CustomContentType。这是我创建一个新项目的方式:
//Create root folder
SPListItem rootItem = navigation.Items.Add();
SPContentType folderType = navigation.ContentTypes["ListLevel"];
rootItem[SPBuiltInFieldId.Title] = "root";
rootItem["ContentTypeId"] = folderType.Id;
rootItem.Update();
问题是,当我在看完我的清单后,我看到了:
当我通过webbrowser进入列表并手动创建内容类型时,一切正常。 (这意味着标题是“根”而不是ID)。
答案 0 :(得分:5)
谢谢你们的答案!
解决方案是两个答案的混合。此外,您必须重新加载列表:
//Create root folder
SPListItem rootItem = navigation.Items.Add();
SPContentType contentType = navigation.ContentTypes["ListLevel"];
rootItem["ContentTypeId"] = contentType.Id;
rootItem["Title"] = "root";
rootItem.Update();
navigation.Update();
rootItem = navigation.GetItemById(rootItem.ID);
rootItem["Name"] = "root";
rootItem.Update();
答案 1 :(得分:1)
“name”字段对应于文件名。尽管您在列标题中看到了,但1125_.000是列表项的文件名,如果您不提供列表项,则会自动生成:
rootItem["Name"] = "myname";
“名称”是一个内置字段。
答案 2 :(得分:0)
首先尝试设置内容类型ID,然后执行rootItem.update()。 之后设置您的字段内容。
//Create root folder
SPListItem rootItem = navigation.Items.Add();
SPContentType folderType = navigation.ContentTypes["ListLevel"];
rootItem["ContentTypeId"] = folderType.Id;
rootItem.Update();
rootItem[SPBuiltInFieldId.Title] = "root";
rootItem.Update();