SharePoint WSS3 - создание документа с определенным типом контента - PullRequest
0 голосов
/ 06 июня 2011

Я пытаюсь создать новый документ в библиотеке документов SharePoint (WSS 3.0) с определенным типом содержимого. Но новый документ всегда имеет тип содержимого по умолчанию для библиотеки документов, а не тот, который я указал: - (

Я использую SPFileCollection.Add для создания файла и использую свойства Hashtable для передачи идентификатора / имени типа содержимого:

SPList list = web.Lists["Test Doc Lib"];

Hashtable properties = new Hashtable();
properties.Add("ContentType", "MyCustomContentType");
properties.Add("ContentTypeId", list.ContentTypes["MyCustomContentType"].Id.ToString());

list.RootFolder.Files.Add("Test File.html", Encoding.UTF8.GetBytes("test"), properties);

Весь пример кода, который я могу найти, использует SPFileCollection. Add для первоначального создания файла, затем повторно выбирает новый SPListItem и устанавливает для него тип содержимого. Я не хочу этого делать, потому что это приведет к возникновению событий ItemAdding и ItemUpdating.

Ответы [ 2 ]

1 голос
/ 30 декабря 2015

Это работает для меня.

SPContentTypeId id=list.ParentWeb.AvailableContentTypes["ContentTypeName"].Id;
Hashtable htMetaData = new Hashtable();
htMetaData.Add("ContentTypeId", id.ToString());
SPFile newfile = docSetFolder.Files.Add(fullFileUrl,fileByteArray,htMetaData,true);
0 голосов
/ 11 августа 2011

Я никогда не пытался добавить файл по-своему, но ИМХО вы можете создать файл, а затем изменить тип содержимого элемента списка.Вы можете отключить запуск событий, чтобы предотвратить запуск событий ItemAdding и ItemUpdating.Об этом много статей (поиск по «sharepoint отключить запуск событий»).Некоторые ссылки:

http://blogs.syrinx.com/blogs/sharepoint/archive/2008/11/10/disabling-event-firing-on-splistitem-update-differently.aspx

http://anylookup.com/how-to-really-disable-event-firing-in-sharepoint

...