ASP.NET SharePoint Web部件:在根站点日历中显示子网站日历事件

问题描述:

我有用于测试目的的名为BigBroSite的网站集。在根网站下,我有三个子网站叫做支持,开发和营销。在每个子网站上,我都有一个包含事件的日历应用程序。我想要做的是在所有子网站日历中查找所有事件,并在根目录中显示它们。ASP.NET SharePoint Web部件:在根站点日历中显示子网站日历事件

我有SharePoint 2013,VS 2017,使用SharePoint 2013解决方案并将可视Web部件添加到项目中。

我到目前为止的代码是:

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) 
        { 



        } 

       } 


      } 
     } 
    } 

我已经在网上搜索,发现使用的数据库教程很多。我没有得到如何将其转化为我的问题。我应该有一个

SPListItemCollection

事件数据传送到企业的性质压延机中。我也不知道从calander调用哪些方法可以接收SPListItemCollection。我目前收集的是我应该使用

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) 
    { 

    } 

来显示我从子网站收集的事件。如果你认为我走错了路,请随时指出我正确的方向。

欢迎您提出任何建议。

你不需要任何代码来完成这件事!其实你需要配置你的压延

1你需要创建日历叠加设置“新历”

enter image description here

2 - 你把你的子网站URL

enter image description here

当您将事件添加到您的子网站日历中时,它会显示在根日历上

enter image description here

+0

Thanx。对于这个建议。我一定会尝试一下。但我也想学习如何通过代码来做到这一点。 – AllramEst

+0

这不幸的是不是上述问题的答案。我想用自己的代码达到同样的目标。 – AllramEst

梅拉德的答案是要走的路,除非你有特定的其他用例。在这种情况下,您仍然不想将其构建为自定义,您希望使用带有自定义显示模板的内容搜索Web部件。如果您只是想学习如何使用C#回应SharePoint列表进行交互,我们可以看看回答这个问题(尽管您在性能上处于错误的轨道,请使用SPSiteDataQuery或SPQuery并且永远不要去SPList.Items,使用SPList.GetItems(SPQuery))。

+0

好的谢谢。我将查看SPSiteDataQuery。 – AllramEst