在SharePoint 2007中使用c#以编程方式创建页面

本文关键字:方式 编程 创建 2007 SharePoint | 更新日期: 2023-09-27 18:12:54

不确定这是否被问到,但搜索还没有完全产生我正在寻找的东西。我已经有一个页面布局,我需要做的是以编程方式在Pages库中创建一个页面。

我对细节不太清楚,但不知何故,我认为我需要打开布局,然后将其流式传输到页面,然后保存页面。我不知道该怎么做。

这个页面是上下文敏感的,所以我想我将开始使用SPSite和SPWeb来访问列表。

我不清楚的是,我怎么才能得到布局?我想我应该可以像这样添加一个页面:

 SPWeb web = SPContext.Current.Site.OpenWeb();

                    SPList Pages = web.Lists["Pages"];
                    SPListItemCollection splc = Pages.Items;

                    foreach (SPListItem spli in splc)
                    {
                        if (spli.Name == "lmIntraTopicsArticle")
                        {
                        }
                    }
                    SPListItem sli = splc.Add();
                    Pages.Update();
                    SPFolder PagesFolder = Pages.RootFolder;
                    byte[] layoutContents = new byte[20];
                    SPFile myNewPage = PagesFolder.Files.Add(PagesFolder.Url + "/TopicWindowArchive.aspx", layoutContents);
                    web.Update();

现在我需要弄清楚如何从布局中添加内容。如果我弄明白了,就更新一下。

谢谢你,

在SharePoint 2007中使用c#以编程方式创建页面

诀窍是获得一个PublishingWeb对象。包含布局。

请看这里的例子

PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web);
string pageName = “MyCustomPage.aspx”;
PageLayout[] pageLayouts = publishingWeb.GetAvailablePageLayouts();
PageLayout currPageLayout = pageLayouts[0];
PublishingPageCollection pages = publishingWeb.GetPublishingPages();
PublishingPage newPage = pages.Add(pageName,currPageLayout);
newPage.ListItem[FieldId.PublishingPageContent] = “This is my content”;
newPage.ListItem.Update();
newPage.Update();
newPage.CheckIn(“This is just a comment”);

也检查这个答案