SharePoint 2010开发实例精选——可过滤的查阅项字段

chris_thanks和我一起讨论一个问题,如何在SharePoint 2010下创建一个可以跨子网站的查阅项(lookup)字段。想到有一个不错的开源项目——SharePoint 2010 filtered lookup自定义字段,正好满足要求,甚至更强大。因此决定写一篇博文推荐给大家。

SharePoint 2010项目是从用于WSS 3.0的“SharePoint Filtered Lookup Field”升级上来的。在SharePoint 2010中,也实现了同样的功能,包括:

  • 可以从相同网站集中的不同的站点里获取数据
  • 可以直接使用列表视图来过滤返回的查阅项数据
  • 可以直接编写 CAML查询语句来过滤返回的查阅项数据
  • 可忽略文件夹,显示所有数据,同时还可以通过CAML查询或列表视图进行过滤
  • 支持多选 

撰写本文时,Fitered Lookup的代码版本为60481 。简单起见,我们直接下载代码,用Visual Studio 2010打开,并Ctrl+F5部署(部署前需要根据自己的SharePoint 环境修改项目属性SiteUrl)。完成后我们就可以直接从SharePoint界面中添加该字段:

 SharePoint 2010开发实例精选——可过滤的查阅项字段

下面是要查阅的列表数据。该列表我们将其创建在顶级网站上。而我们的字段所属列表创建在子网站上。以此来验证跨网站的功能。 

SharePoint 2010开发实例精选——可过滤的查阅项字段

可以看到在栏设置中有选择站点的地方。我们选中顶级网站,下面的列表会自动刷新,选中上面的列表,并指定要选择的栏。这里我们还添加了一个简单的CAML查询,获取标题中包含“生物”一词的所有类别。点击确定保存栏设置。

SharePoint 2010开发实例精选——可过滤的查阅项字段

在列表项创建页面中,我们新添加的栏显示效果如下:

如果在栏设置中勾选了“允许多个值”。则显示效果如下:

SharePoint 2010开发实例精选——可过滤的查阅项字段

填写好后,点保存。在列表项查看页面中,该字段值显示如下:

 栏设置中还可以使用列表视图对数据进行筛选。比如,我们选中源列表中的一个视图“农业科学”,返回所有农业科学的分类。

SharePoint 2010开发实例精选——可过滤的查阅项字段

栏在新建页面的显示如下:

SharePoint 2010开发实例精选——可过滤的查阅项字段

用起来还是很顺手的。

当然,使用中也发现一些问题。比如如果源列表是外部列表的话,会出错。毕竟是第一版,将来的版本应该会更加完善。 

参考资料

SharePoint 2010 Filtered Lookup Field 

http://sp2010filteredlookup.codeplex.com/  


你可能感兴趣的:(SharePoint)