[英]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.