문제

현재 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");
        }
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top