Est-il possible d'ajouter par programme des éléments de page à Enterprise wiki à l'aide de CSOM ou de repos?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/69633

Question

Comme beaucoup d'entre nous, je suis vert en ce qui concerne le développement SharePoint.J'ai été chargé de déplacer le contenu MediaWiki vers un Wiki SharePoint Enterprise.À ce stade, je n'ai pas accès au serveur que SP est allumé et je dois faire cela tout le client.Je peux obtenir des informations avec succès ou même modifier le contenu d'une page de publication, mais je ne peux pas créer une nouvelle page wiki avec Microsoft.SharePoint.client (j'ai essayé via ListItem, etc.).

 ClientContext context = new ClientContext("http://<site>/");
 ListItem LItem = pagesList.GetItemById(8);
 LItem["PublishingPageContent"] = "This is my new value!!";
 LItem.Update();

 context.ExecuteQuery();  

Le code ci-dessus a fonctionné super!Puis j'ai essayé:

  ListItemCreationInformation newPage = new ListItemCreationInformation();
  ListItem newpageitem = pagesList.AddItem(newPage);
  newpageitem["Title"] = "OtherCompany";
  newpageitem["PublishingPageContent"] = "Info for Other Company";
  newpageitem.Update();

  context.Load(newpageitem);

Cela n'a pas fonctionné si bien.: - (

Est-ce que quelqu'un sait si cela est même possible de faire ce côté-ci?

Était-ce utile?

La solution

Comment créer une page Wiki via CSOM
/// <summary>
/// Create Wiki page
/// </summary>
/// <param name="pagesList">Wiki Pages list</param>
/// <param name="pageName">Wiki page name</param>
/// <param name="pageContent"></param>
public static ListItem CreateWikiPage(List pagesList, string pageName, string pageContent)
{
    const string templateRedirectionPageMarkup = "<%@ Page Inherits=\"Microsoft.SharePoint.Publishing.TemplateRedirectionPage,Microsoft.SharePoint.Publishing,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c\" %> <%@ Reference VirtualPath=\"~TemplatePageUrl\" %> <%@ Reference VirtualPath=\"~masterurl/custom.master\" %>";
    var pageInfo = new FileCreationInformation
      {
                Url = pageName,
                Content = Encoding.UTF8.GetBytes(templateRedirectionPageMarkup),
                Overwrite = true
      };

    var ctx = pagesList.Context;
    var wikiFile = pagesList.RootFolder.Files.Add(pageInfo);
    ctx.Load(wikiFile);
    ctx.ExecuteQuery();

    var wikiItem = wikiFile.ListItemAllFields;
    wikiItem["PublishingPageContent"] = pageContent;
    wikiItem["PublishingPageLayout"] = "/_catalogs/masterpage/EnterpriseWiki.aspx, Basic Page";
    wikiItem.Update();
    ctx.ExecuteQuery();
    return wikiItem;
}

Utilisation

using (var ctx = new ClientContext(url))
{ 
    var pagesList = ctx.Web.Lists.GetByTitle("Pages"); 
    var wikiItem = CreateWikiPage(pagesList,"SharePoint Overview.aspx","Welcome to the SharePoint!");
} 

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top