#c# #sharepoint-2010 #splistitem #splist
#c# #sharepoint-2010 #расщепитель #расколоть #разделяемый элемент
Вопрос:
У меня есть пользовательский список, который может содержать CustomContentType. Вот как я создаю новый элемент:
//Create root folder
SPListItem rootItem = navigation.Items.Add();
SPContentType folderType = navigation.ContentTypes["ListLevel"];
rootItem[SPBuiltInFieldId.Title] = "root";
rootItem["ContentTypeId"] = folderType.Id;
rootItem.Update();
Проблема в том, что когда я смотрю на свой список после этого, я вижу, что:
Когда я перехожу к списку через веб-браузер и создаю тип контента вручную, все в порядке. (Это означает, что заголовок — «root», а не идентификатор).
Ответ №1:
Спасибо вам обоим за ответы!
Решение представляло собой смесь обоих ответов. Дополнительно вам придется перезагрузить список:
//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();
Ответ №2:
Поле «name» соответствует имени файла. Несмотря на то, что вы видите в заголовке столбца, 1125_.000 — это имя элемента списка, которое автоматически генерируется, если вы его не укажете:
rootItem["Name"] = "myname";
«Name» — это встроенное поле.
Ответ №3:
Сначала попробуйте установить идентификатор типа контента, а затем выполните 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();