ykwll 发表于 2015-9-25 07:18:32

在SharePoint Foundation 2010中显示来自其他站点的列表

  SharePoint Foundation 锁定为只能显示同一个网站下的列表数据源,幸亏有SharePoint WebService,使得我们有办法解决该问题。
  这里我们用到的WebService是 http://ServerName/_vti_bin/List.asmx。
准备工作
  为了演示,我们创建一个带有筛选条件的列表,只要勾选了"发布到主站点"(注意:这不是一个内置的栏,需要你手工创建)的列表项都将显示在我们最终的结果页面上。

  这是一种隔离小组站点和企业公共站点访问的很好的方式。可以将通知集中显示在一个位置,访问通知的用户可以不必具有小组站点的访问权限,而维护权可以下放到各个小组。
  需要一个视图来筛选发布的数据。
  1、打开列表设置。

  在页面下方找到“创建视图”,点击。

  选择标准视图

  根据“发布到主站点”一栏对视图进行筛选。

  这样,视图就建好了。点击它来查看列表和视图ID。

  这里要把“%20”替换成“-”。本例中显示的列表ID为626e3c75%2D735e%2D4be6%2Dbb5d%2D9156cb780ae0 ,替换后为626e3c75-735e-4be6-bb5d-9156cb780ae0 。视图ID也是如此。记下来以便在下面的步骤中使用。

  列表数据源的准备工作完成了。
开始
  首先,我们需要在SharePoint Designer中创建一个数据源。打开SharePoint Designer并连接到目标站点(也就是将要在上面显示通知的站点)。
  点击左侧导航区的“数据源”,点击SOAP服务连接,以便开始定义我们的数据源。

  服务说明位置:填写通知列表所在的站点对应的列表WebService地址,本例中为http://sp2010u/it/_vti_bin/Lists.asmx:WSDL
  数据命令:选择
  端口:ListsSoap
  操作:GetListItems
  参数:我们需要填写listname和viewname,值为上面我们记下的列表和视图ID。


  转到常规选项卡,起一个名字。

  接下来在登录选项卡中定义安全上下文。注意:如果使用Windows身份验证的话,你需要在通知列表上为用户配置查看权限,以便可以访问通知。这里我们使用的是两层发布(正如上面我们讨论的一样),并不想为每个用户指定访问权限,因此选择了指定访问凭据的方式。

  

  然后,打开我们需要显示通知内容的页面,插入一个数据视图。选择前面创建的SOAP服务。

  通知列表就会显示在页面上。但是你需要做一些清理工作。比如修改标题栏的文字,将正文字段格式化为RTF(富文本),删除作者一栏中的一些特殊字符(可以通过修改字段的xslt为<xsl:value-of select="substring-after(@ows_Author,'#')"/>)等等。

  完成!
  另一个小技巧是:你可以合并不同列表的数据。比如从多个小组站点中发布的通知,合并后统一显示在主站点中。只需要使用“链接数据源”并选择需要合并的列表即可。

  参考资料
  Displaying a SharePoint List from another team site in SharePoint Foundation 2010
页: [1]
查看完整版本: 在SharePoint Foundation 2010中显示来自其他站点的列表