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

时间:2017-03-17 13:25:13

标签: c# asp.net sharepoint calendar web-parts

我出于测试目的而使用名为BigBroSite的sitecollection。在根网站下,我有三个子网站,称为支持,开发和营销。在每个子网站上,我都有一个日历应用程序,其中包含事件。我想要做的是找到所有子网站日历中的所有事件,并在根文件中显示它们。

我拥有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)
    {

    }

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

欢迎所有建议。

2 个答案:

答案 0 :(得分:0)

你不需要任何代码来完成这项工作!实际上你需要配置你的日历

1-您需要创建一个"新日历"

enter image description here

2-在日历覆盖设置中,您将设置子网站网址

enter image description here

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

enter image description here

答案 1 :(得分:0)

除非你有特定的其他用例,否则Melad的答案是要走的路。在这种情况下,您仍然不想构建自定义,您希望将内容搜索Web部件与自定义显示模板一起使用。如果你只是试图学习如何使用C#回复与sharepoint列表进行交互,我们可以看看回答这个问题(尽管你在性能方面做错了,请使用SPSiteDataQuery或SPQuery,永远不要去SPList.Items,使用SPList.GetItems(SPQuery))。