Я пытаюсь создать страницы в библиотеке страниц Sharepoint 2010 через клиентскую объектную модель, но не могу найти примеров того, как это сделать.Я попробовал два подхода:
Первый - обработать библиотеку страниц как список и попытаться добавить элемент списка.
static void createPage(Web w, ClientContext ctx)
{
List pages = w.Lists.GetByTitle("Pages");
//ListItem page = pages.GetItemById(0);
ListItemCreationInformation lici = new ListItemCreationInformation();
ListItem li = pages.AddItem(lici);
li["Title"] = "hello";
li.Update();
ctx.ExecuteQuery();
}
Как и ожидалось, это не удалось с сообщением об ошибке:
To add an item to a document library, use SPFileCollection.Add()
Следующим подходом, который я попробовал, было добавить его в файл.Проблема в том, что объект FileCreationInformation ожидает байтовый массив, и я не уверен, что передать ему.
static void createPage(Web w, ClientContext ctx)
{
List pages = w.Lists.GetByTitle("Pages");
FileCreationInformation file = new FileCreationInformation();
file.Url = "testpage.aspx";
file.Content = new byte[0];
file.Overwrite = true;
ctx.Load(pages.RootFolder.Files.Add(file));
ctx.ExecuteQuery();
}
В приведенном выше фрагменте кода добавляется элемент в библиотеку страниц, но открытие файла приводит кпустую страницу, которую я не могу редактировать.Читая различные темы, я подозреваю, что добавить страницы можно только с помощью кода на стороне сервера.Есть мысли?
Спасибо