Question

Est-il possible de créer une nouvelle page wiki en utilisant le modèle objet client et de lui donner du contenu ("<h1>Welcome to the SharePoint!</h1>") ?

J'utilise VB.Net

Était-ce utile?

La solution

Comment créer une page Wiki à l'aide de SharePoint CSOM

L'exemple ci-dessous montre comment créer une page wiki via CSOM (version VB.NET) :

Sub CreateWikiPage(context As ClientContext, pageName As String, pageContent As String)

    Const templateRedirectionPageMarkup As String = "<%@ 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"" %>"

    Dim wikiPages = context.Web.Lists.GetByTitle("Pages")
    context.Load(wikiPages)
    context.ExecuteQuery()

    Dim fileInfo = New FileCreationInformation()
    fileInfo.Url = pageName
    fileInfo.Content = Encoding.UTF8.GetBytes(templateRedirectionPageMarkup)
    fileInfo.Overwrite = True

    Dim wikiFile = wikiPages.RootFolder.Files.Add(fileInfo)
    context.Load(wikiFile)
    context.ExecuteQuery()

    Dim wikiPage = wikiFile.ListItemAllFields
    wikiPage("PublishingPageContent") = pageContent
    wikiPage("PublishingPageLayout") = "/_catalogs/masterpage/EnterpriseWiki.aspx, Basic Page"
    wikiPage.Update()
    context.ExecuteQuery()

End Sub

Remarque : la méthode fournie est destinée à la création de pages wiki d' entreprise

Usage

Using ctx = New ClientContext(siteUrl)      
   CreateWikiPage(ctx, "Greetings.aspx", "<H1>Welcome to the SharePoint!</H1>")
End Using

Les références

Quelques trucs et astuces d'utilisation du modèle objet client SharePoint dans PowerShell. Partie 1


Comment créer une page dans la bibliothèque de pages Wiki en utilisant CSOM

Pour SharePoint 2013

Utilisez Méthode Utility.CreateWikiPageInContextWeb pour créer une page en Wiki Page Library :

Sub CreateWikiPageInLibrary(context As ClientContext, wikiPageLibraryTitle As String, pageName As String, pageContent As String)

    Dim wikiLibrary = context.Web.Lists.GetByTitle(wikiPageLibraryTitle)
    context.Load(wikiLibrary.RootFolder)
    context.ExecuteQuery()

    Dim wikiPageInfo As New WikiPageCreationInformation
    wikiPageInfo.WikiHtmlContent = pageContent
    wikiPageInfo.ServerRelativeUrl = String.Format("{0}/{1}", wikiLibrary.RootFolder.ServerRelativeUrl, pageName)
    Dim wikiFile = Microsoft.SharePoint.Client.Utilities.Utility.CreateWikiPageInContextWeb(context, wikiPageInfo)
    context.ExecuteQuery()

End Sub

Pour SharePoint 2010

Sub CreateWikiPageInLibrary(context As ClientContext, wikiPageLibraryTitle As String, pageName As String, pageContent As String)

    Dim wikiLibrary = context.Web.Lists.GetByTitle(wikiPageLibraryTitle)
    context.Load(wikiLibrary.RootFolder)
    context.ExecuteQuery()


    Dim pageUrl = String.Format("{0}/{1}", wikiLibrary.RootFolder.ServerRelativeUrl, pageName)
    Dim wikiFile = wikiLibrary.RootFolder.Files.AddTemplateFile(pageUrl, TemplateFileType.WikiPage)
    context.Load(wikiFile)
    context.ExecuteQuery()

    Dim wikiPage = wikiFile.ListItemAllFields
    wikiPage("WikiField") = pageContent
    wikiPage.Update()
    context.ExecuteQuery()

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