2017-03-17 42 views
0

BigBroSite라는 sitecollection을 테스트 목적으로 사용했습니다. 루트 사이트에는 세 가지 하위 사이트 인 Support, Development 및 Marketing이 있습니다. 각 하위 사이트에는 이벤트가있는 캘린더 앱이 있습니다. 내가 원하는 것은 모든 하위 사이트 캘린더의 모든 이벤트를 찾아 루트 캘린더에 표시하는 것입니다.ASP.NET SharePoint 웹 파트 : 루트 사이트 달력에서 하위 사이트 달력 이벤트 표시

저는 SharePoint 2013, VS 2017, SharePoint 2013 솔루션으로 작업하고 프로젝트에 시각적 웹 파트를 추가했습니다.

내가 지금까지 가지고 코드입니다 :

protected void calender() 
    { 


     SPSite site = SPContext.Current.Site; 

     foreach (SPWeb web in site.AllWebs) 
     { 
      foreach (SPList cal in web.Lists) 
      { 
       if (cal.BaseTemplate == SPListTemplateType.Events) 
       { 
        foreach (SPListItemCollection activity in cal.Items) 
        { 



        } 

       } 


      } 
     } 
    } 

내가 웹을 검색하고 데이터베이스를 사용하는 튜토리얼을 많이 발견했다. 나는 그걸 내 문제로 어떻게 번역 할 수 없어요. 나는 calander의 proprties에 이벤트 데이터를 전송하는

SPListItemCollection

이 있어야합니다. 나는 또한 SPListItemCollection을받을 수있는 calander에서 호출하는 메서드를 모른다. 지금까지 수집 한 내용은 하위 사이트에서 수집 한 이벤트를 표시하려면

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) 
    { 

    } 

을 사용해야한다는 것입니다. 내가 잘못된 길을 가고 있다고 생각하면 옳은 방향으로 나를 가리 키도록 자유롭게 느끼십시오.

모든 제안을 환영합니다.

답변

0

이 작업을 수행하는 데 필요한 모든 코드가 필요하지 않습니다! 실제로 당신이 캘린더 오버레이 설정에서 "새 달력"

enter image description here

2를 만들 필요가 귀하의 캘린더

1을 config (설정) 할 필요가 당신은 당신의 하위 사이트의 URL 놓을 게요

enter image description here

하위 사이트 캘린더에 일정을 추가하면 루트 캘린더에 표시됩니다.

enter image description here

+0

고맙습니다. 제안을 위해. 나는 그것을 확실히 시도 할 것이다. 그러나 나는 또한 코드로 그것을하는 방법을 배우고 싶다. – AllramEst

+0

불행히도 위의 질문에 대한 답은 아닙니다. 나는 같은 목표를 내 자신의 코드와 함께하고 싶습니다. – AllramEst

0

특정 다른 유스 케이스가 없다면 Melad의 대답이 필요합니다. 어떤 경우에도 맞춤 설정을 원하지 않는 경우 맞춤 표시 템플릿과 함께 콘텐츠 검색 웹 파트를 사용하려고합니다. C#을 사용하여 쉐어 포인트 목록과 상호 작용하는 방법을 배우려는 사람이라면 그 질문에 대답 할 수 있습니다 (성능에 대한 잘못된 길을 걷고 있지만 SPSiteDataQuery 또는 SPQuery를 사용하고 SPList로 이동하지 마십시오 .Items, SPList.GetItems (SPQuery)를 사용하십시오.

+0

감사합니다. SPSiteDataQuery를 살펴 보겠습니다. – AllramEst