기능 수신기에서 프로그래밍 방식으로 특정 하위 사이트에 게시 페이지 추가
-
10-12-2019 - |
문제
현재 FeatureReceiver 메서드에서 프로그래밍 방식으로 하위 사이트를 만들었으며 게시 페이지를 작성할 수 있지만 루트 사이트에서 작성 중입니다.특정 하위 사이트를 대상으로하는 방법이 있습니까 ?? 에 게시 페이지를 추가하는 방법이 있습니까?
이 기능이 기능 수신기에 있으므로 SPFeatureReceiver properties
를 사용하여 다른 방법과 같은 현재 웹에 액세스하고 있습니다.
SPWeb spWeb = properties.GetWeb();
.
나는 이런 것을 시도했지만 성공하지 못했습니다 :
SPSite site = properties.Feature.Parent as SPSite;
{
using (SPWeb oSPWeb = site.OpenWeb("http://www.mysite.com/newsite"))
{
// page creation code
}
}
.
도움이 좋을 것입니다
해결책
모두
일을 끝내려면
SPSite site = properties.Feature.Parent as SPSite;
를 얻은 후에 필자는 내가 이미 특성에서 전체 사이트 URL을 가졌기 때문에 나머지 URL의 나머지 URL에 "/ newpage"와 같은 나머지 URL이 될 수있는 URL의 나머지 부분을 추가 할 수 있다는 것을 알았습니다.
사이트 및 WebURL에서 전달 된 방법을 만들어 원하는 결과를 얻으려면 웹 페이지
업데이트 :
여기에 이러한 매개 변수를 통과하는 코드가 있습니다.
이 메소드는 페이지를 작성하는 데 사용됩니다
private void CreatePage(SPSite site1, string cWebUrl, string cPageLayout, string cPageName, string cPageTitle)
{
try
{
using (SPWeb spoWeb = site1.OpenWeb(cWebUrl))
{
PublishingWeb pWebRoot = PublishingWeb.GetPublishingWeb(site1.RootWeb);
PublishingWeb pWeb = PublishingWeb.GetPublishingWeb(spoWeb);
PageLayout[] layouts = pWebRoot.GetAvailablePageLayouts();
PageLayout pl = GetPageLayout(layouts, cPageLayout);
if (pl != null)
{
//Create My Pages
PublishingPage newPage = pWeb.GetPublishingPages().Add(cPageName, pl);
newPage.Layout = pl;
newPage.Title = cPageTitle;
newPage.Update();
newPage.CheckIn("");
pWeb.Update();
}
}
}
catch (Exception ex)
{
//Error Handling code
}
}
.
그런 다음 i가 생성하려는 모든 페이지로 값을 전달하는 다른 방법을 만들었습니다.
private void CreatePages(SPSite site)
{
CreatePage(site, "/", "MyPage1.Minimal..aspx", "Page1.aspx", "Page1");
CreatePage(site, "/", "MyPage2.Minimal.aspx", "Page2.aspx", "Page2");
CreatePage(site, "/", "MyPage3.Minimal.aspx", "Sitemap.aspx", "Sitemap");
}
. 제휴하지 않습니다 sharepoint.stackexchange