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