Развернуть страницу aspx в папке / Lists программно - PullRequest
0 голосов
/ 22 сентября 2009

Мне нужно развернуть страницу приложения ASP.NET из сборки в папку / Lists / (http://server/Lists).

  • Как получить «физический» объект страницы со страницы, котораясделано в сборке?

Дерево проекта http://img17.imageshack.us/img17/4242/ss20090922150130.png

  • Как развернуть эту страницу как модуль или с помощью FeatureReceiver? Списки папок "Physycally" не существуют.

Спасибо за помощь.

Редактировать: я хочу сделать именно то, что делает SharePoint Designer, нажав эту кнопку: SharePoint Designer http://img121.imageshack.us/img121/5163/ss20090923160323.png

1 Ответ

1 голос
/ 23 сентября 2009

Я не уверен, что именно вы ищете, но я предполагаю, что вы хотите создать страницу и зарегистрировать ее в списке?

Этот фрагмент кода делает это для страницы публикации в 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);
}
...