1.站点集中可以使用SPSite.AllWeb,然后遍历所有站点的isRootWeb,根据siteTemplate取得需要的子站点。

/// <summary>
/// Handles the Load event of the Page control.
/// </summary>
protected void Page_Load(object sender, EventArgs e)
{
var web = SPControl.GetContextWeb(Context); var subSite = new SPSite(web.Site.ID).AllWebs; var list = new List<ProjectOverviewContent>(); //Foreach sub site
foreach (SPWeb site in subSite)
{
if (site.IsRootWeb) continue;
if (site.WebTemplate != WebTemplate.PM.ToString()) continue; try
{
var content = site.Lists.TryGetList(ProjectOverviewContent.ProjectListName);
if (content == null || content.Items.Count == ) continue; var link = new ProjectOverviewContent
{
//get sitrUrl
SubSiteUrl = site.Url,
//get site created time
SiteCreateTime = site.Created,
}; //Foreach sub site list => ProjectContent
foreach (SPListItem item in content.Items)
{
link.ProjectName = item[ProjectOverviewContent.ProjectNameMapping].TryToString();
link.StartDate = item[ProjectOverviewContent.StartDateMapping].TryToString().SplitDate();
link.EndDate = item[ProjectOverviewContent.EndDateMapping].TryToString().SplitDate();
link.ServiceLine = item[ProjectOverviewContent.ServiceLineMapping].TryToString();
link.Industry = item[ProjectOverviewContent.IndustryMapping].TryToString();
} content = site.Lists.TryGetList(ProjectOverviewContent.MemberListName);
if (content == null)
{
list.Add(link);
continue;
} //Foreach sub site list => MemberContent
foreach (SPListItem item in content.Items)
{
link.Position = item[ProjectOverviewContent.PositionMapping].TryToString(); if (link.Position == Position.MIC.ToString())
{
link.MIC = item[ProjectOverviewContent.MemberNameMapping].TryToString();
}
else if (link.Position == Position.PIC.ToString())
{
link.PIC = item[ProjectOverviewContent.MemberNameMapping].TryToString();
}
else if (link.Position == Position.PM.ToString())
{
link.PM = item[ProjectOverviewContent.MemberNameMapping].TryToString();
}
} list.Add(link);
}
catch (SPException spException)
{
LogHelper.Error(spException);
}
catch (Exception ex)
{
LogHelper.ShowError(lblErrorMessage, ex);
}
} list.Sort(); tblProjectOverview.DataSource = list.Take();
tblProjectOverview.DataBind();
}

2.子站点读取站点集数据可以通过New SPSite("url").RootWeb获取。

public SPWeb RootSite = new SPSite(ProjectContent.SiteUrlMapping).RootWeb;

/// <summary>
/// Gets the project information from root site.
/// </summary>
public List<ServiceOfferingContent> GetProjectInfo(string projectCode)
{
var siteContent = RootSite.Lists[ServiceOfferingContent.ListName];
if (siteContent == null || siteContent.Items.Count == ) return null; var list = new List<ServiceOfferingContent>(); foreach (SPListItem item in siteContent.Items)
{
var link = new ServiceOfferingContent()
{
ProjectCode = item[ServiceOfferingContent.ProjectCodeMapping].TryToString(),
ServiceLine = item[ServiceOfferingContent.ServiceLineMapping].TryToString(),
Industry = item[ServiceOfferingContent.IndustryMapping].TryToString(),
Id = item[ServiceOfferingContent.IdMapping].TryToString(),
Title = item[ServiceOfferingContent.TitleMapping].TryToString(),
Contents = item[ServiceOfferingContent.ContentsMapping].TryToString(),
ThumbnailUrl = item[ServiceOfferingContent.ThumbnailUrlMapping].TryToString(),
HeadImageUrl = item[ServiceOfferingContent.HeadImageUrlMapping].TryToString(),
ContentsImageUrl = item[ServiceOfferingContent.ContentsImageUrlMapping].TryToString(),
Summary = item[ServiceOfferingContent.SummaryMapping].TryToString(),
};
if (link.ProjectCode != projectCode) continue; list.Add(link);
return list;
}
return null;
}

SharePoint 站点集和子站点数据互相读取的更多相关文章

  1. 如何迁移SharePoint 2010至新的站点

    SharePoint使用非常方便,但是有一个问题获取会困扰大家,就是SharePoint的备份和迁移.下面我们来看一下如何把SharePoint迁移至别的SharePoint站点. 1. 使用网站集管 ...

  2. Stsadm 导入导出子站点

    SharePoint通过stsadm备份和还原子网站(不是网站集)   大家都知道SharePoint的stsadm命令提供了很多便捷甚至是唯一的操作方法! 这里列出的所有命令:http://www. ...

  3. 黄聪:WordPress 多站点建站教程(六):使用WP_Query、switch_to_blog函数实现获取子站点分类中的文章

    首先在你使用主题的funtions.php里面添加下代码: //根据时间显示最新的分类文章内容,每个站点显示一篇内容 //$blog_id 子站点ID //$catid 分类ID wp_reset_q ...

  4. Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作

    详细的Spring MVC框架搭配在这个连接中: Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 这篇主 ...

  5. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 站点设置

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 站点设置         你应该熟悉(假设还咩有)的SharePo ...

  6. iis子站点

    在iis已有的站点下可以继续添加”应用程序”,就构成子站点:需要访问子站点app下的程序,只想在controller/action前,加个app就行,即app/controller/action 这样 ...

  7. 黄聪:WordPress 多站点建站教程(四):获取子站点相关信息(站点的注册时间,修改时间,总文章数,URL等)

    1.获取子站点blogs表里面的内容信息 $blog_details = get_blog_details(1); echo 'Blog '.$blog_details->blog_id.' i ...

  8. 《今天你买到票了吗?——从铁道部12306.cn站点漫谈电子商务站点的“海量事务快速处理”系统》

    <今天你买到票了吗?--从铁道部12306.cn站点漫谈电子商务站点的"海量事务快速处理"系统> 首发地址: http://bbs.hpx-party.org/thre ...

  9. 【SharePoint学习笔记】第3章 SharePoint列表新特性以及数据访问

    第3章 SharePoint列表新特性以及数据访问   使用CAML查询语言     CAML:协作应用程序标记语言 Collaboration Application Markup Language ...

随机推荐

  1. JavaScript为select添加option,select选项变化时的处理,获取slelect被选中的值

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. java 如何在pdf中生成表格

    1.目标 在pdf中生成一个可变表头的表格,并向其中填充数据.通过泛型动态的生成表头,通过反射动态获取实体类(我这里是User)的get方法动态获得数据,从而达到动态生成表格. 每天生成一个文件夹存储 ...

  3. Equinox P2的学习

    product.configuration 点击“Add按钮”并添加以下插件: org.eclipse.equinox.p2.ui org.eclipse.equinox.p2.ui.sdk org. ...

  4. 解决PowerShell命令行窗口中不显示光标的问题

    不知道什么原因,在有些系统上打开PowerShell命令行窗口后,光标无法显示.这种情况在Windows Server 2008/2012.Windows 8/9/10上都出现过,估计是由于某些系统软 ...

  5. [转]TCP协议中的三次握手和四次挥手(图解)

    本文转自:http://blog.csdn.net/whuslei/article/details/6667471 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来 ...

  6. 再不写,我怕就再也不写了-LAMP基础

    hi 经历了4天大餐的洗礼,整个人都思密达了...昨天的懒,是没有原因的懒,总之就是该提笔了亲 1.Ubuntu下的LAMP配置 -----Ubuntu基础知识----- ----管理员权限 出于安全 ...

  7. PS色调均化滤镜的快捷实现(C#源代码)。

    photoshop色调均化功能通常是在进行修片处理前期比较常用的功能之一,其对扩展图像的对比度,增强视觉效果有一定的作用.在很多课本或者文章中,也称这种处理为灰度均衡化.直方图均衡化等等.算法原理都是 ...

  8. Codeforces Round #282 Div.1 B Obsessive String --DP

    题意: 给两个串S,T,问能找出多少的S的(a1,b1)(a2,b2)..(ak,bk),使Sa1---Sb1,...Sak---Sbk都包含子串T,其中k>=1,且(a1,b1)...(ak, ...

  9. POJ1386Play on Words[有向图欧拉路]

    Play on Words Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11846   Accepted: 4050 De ...

  10. 使用C#向后台ACCESS数据库添加数据

    Microsoft Office Access是由微软发布的关系数据库管理系统.它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft O ...