簡體   English   中英

在SharePoint 2007中使用C#以編程方式創建頁面

[英]Create a page programatically with C# in SharePoint 2007

不知道是否要問這個問題,但是搜索並沒有完全滿足我的要求。 我已經有了頁面布局,我需要做的是在Pages庫中以編程方式創建一個頁面。

我對細節不了解,但是我想我將需要打開Layout,然后將其流式傳輸到頁面,然后保存頁面。 我不確定該怎么做。

該頁面是上下文相關的,因此我認為我將首先使用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();

現在,我需要弄清楚如何從布局中添加內容。 如果我弄清楚了,請更新一些。

謝謝,

訣竅是獲取一個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”);

還要檢查這個答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM