以编程方式在/ Lists文件夹中部署aspx页面

时间:2009-09-22 12:02:12

标签: sharepoint deployment sharepoint-2007

我需要将ASP.NET应用程序页面从程序集部署到/ Lists /(http://server/Lists)文件夹。

  • 如何获得“物理”页面对象 来自汇编的页面?

Project tree http://img17.imageshack.us/img17/4242/ss20090922150130.png

  • 如何将此页面部署为模块 或者通过FeatureReceiver? “Physycally”文件夹列表不存在。

感谢您的帮助。

编辑:我想通过单击此按钮来完成SharePoint Designer正在执行的操作: SharePoint Designer http://img121.imageshack.us/img121/5163/ss20090923160323.png

1 个答案:

答案 0 :(得分:1)

我不确定你到底是怎么回事,但我猜你想创建一个页面并将其检入列表?

此代码段为MOSS中的发布页面执行此操作:

using (SPWeb web = siteCollection.RootWeb)
{
  PublishingSite publishingSite = new PublishingSite(siteCollection);
  PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web);

  // Article Page content type
  SPContentTypeId articleContentTypeID = new SPContentTypeId("0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D");

  PageLayout[] layouts = publishingWeb.GetAvailablePageLayouts(articleContentTypeID);
  PageLayout articlePageLayout = layouts[0];

  string pageName = "LegalInformation.aspx";

  SPQuery query = new SPQuery();
  query.Query = string.Format("" +
  "<Where>" +
    "<Eq>" +
       "<FieldRef Name='FileLeafRef' />" +
       "<Value Type='File'>{0}</Value>" +
    "</Eq>" +
  "</Where>" +
  "", pageName);

  // Does the file already exists ?
  PublishingPageCollection pageColl = publishingWeb.GetPublishingPages(query);
  if (pageColl.Count > 0)
  {
    return;
  }

  PublishingPage newPage = publishingWeb.GetPublishingPages().Add(pageName, articlePageLayout);

  newPage.ListItem[FieldId.Title] = "This page title";
  newPage.ListItem[FieldId.PublishingPageContent] = "<P style='MARGIN-TOP: 20px'>Your content here</P>"";

  newPage.Update();

  // Check in file
  if (newPage.ListItem.File.CheckOutStatus != SPFile.SPCheckOutStatus.None)
  {
     newPage.ListItem.File.CheckIn(string.Empty);
  }

  // Publish file
  newPage.ListItem.File.Publish(string.Empty);
}