Question

Yat-il un moyen simple d'ajouter une page Web partie à un site Sharepoint par programmation, en utilisant le modèle d'objet ou de services Web? Il semble simple pour créer des listes et ajouter des composants WebPart de cette manière, mais je ne peux pas trouver un exemple de la façon de créer une page de contenu.

Edit:. Pour une installation simple WSS (non MOSS)

Était-ce utile?

La solution

Je vais prendre la route que ce n'est pas un site de collaboration / d'édition que cela ne soit pas mentionné et WSS est dans la liste des tags. Jolie clunky par rapport à l'utilisation d'un site de publication ...

Choisissez d'abord la partie web modèle de page que vous souhaitez utiliser à partir de:

  

C: \ Program Files \ Common   Files \ Microsoft Shared \ serveur web   extensions \ 12 \ TEMPLATE \ 1033 \ STS \ DOCTEMP \ SMARTPGS

Ensuite, mettre en place un cours d'eau au modèle et utiliser SPFileCollection.Add () pour l'ajouter à votre bibliothèque de documents. Par exemple:

string newFilename = "newpage.aspx";
string templateFilename = "spstd1.aspx";
string hive = SPUtility.GetGenericSetupPath("TEMPLATE\\1033\\STS\\DOCTEMP\\SMARTPGS\\");
FileStream stream = new FileStream(hive + templateFilename, FileMode.Open);
using (SPSite site = new SPSite("http://sharepoint"))
using (SPWeb web = site.OpenWeb())
{
    SPFolder libraryFolder = web.GetFolder("Document Library");
    SPFileCollection files = libraryFolder.Files;
    SPFile newFile = files.Add(newFilename, stream);
}

Note: Cette solution suppose que vous avez la version américaine SharePoint installé qui utilise le code de langue 1033. Il suffit de changer le chemin si différent.

Autres conseils

Une solution alternative à la réponse acceptée de @AlexAngas est d'utiliser le NewWebPage méthode du SharePoint Foundation Protocol RPC , comme le suggère ici .

private static void CreateWebPartPage(this SPWeb web, SPList list, string pageName, int layoutTemplate)
{
    const string newWPPage = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                                   "<Batch>" +
                                   "<Method ID=\"0,NewWebPage\">" +
                                    "<SetList Scope=\"Request\">{0}</SetList>" +
                                    "<SetVar Name=\"Cmd\">NewWebPage</SetVar>" +
                                    "<SetVar Name=\"ID\">New</SetVar>" +
                                    "<SetVar Name=\"Type\">WebPartPage</SetVar>" +
                                    "<SetVar Name=\"WebPartPageTemplate\">{2}</SetVar>" +
                                    "<SetVar Name=\"Overwrite\">true</SetVar>" +
                                    "<SetVar Name=\"Title\">{1}</SetVar>" +
                                    "</Method>" +
                                     "</Batch>";
    var newWPPageBatchXml = string.Format(newWPPage, list.ID, pageName, layoutTemplate);

    var result = web.ProcessBatchData(newWPPageBatchXml);
}

Utilisation de la méthode d'extension ci-dessus:

web.CreateWebPartPage(yourList, "NewPage", 2);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top