记录这个
之前有一篇blog提到过SharePoint中的Content Query Web Part (CQWP),说的是当SharePoint开启了匿名访问模式后,Content Query Web Part读取Document Library数据失败的问题。从这篇博客开始,我将说一下Content Query Web Part这个东西能做什么,如何配置,必要的时候如何自定义它来满足我们的需要,并实现最终的效果。
好了,假设现在你通过SharePoint Server 2010创建了自己的web站点,你的所有的web页面,文档,图片及其他数据都存储在SharePoint Library或者List中,Content Type定义了了一些不同item的信息,sub-sites用于站点结构组织和导航,现在的问题是:你如何把一些你感兴趣的信息点整合起来集中显示到某个地方比如说home页面上?
Ok,在SharePoint中有一个OOB (Out of the box)的web part就能很好的做这个事,它就是之前提到的Content Query Web Part。这个web part允许你从站点的某个地方把数据抓过来显示到另一个地方,显示的数据可以基于某个查询或规则,然后还可以定制。就是说你可以控制要显示内容的外观,将要返回什么样的数据项,而且你还可以进行一定的过滤,分组和排序。简单点说,你可以使用CQWP把站点中不同地方的数据内容呈现在同一个地方,要显示什么样的内容和如何显示都有你来控制。
下面通过一个实例来具体说明CQWP的应用,现在站点中有一个数据源叫News and Events,里面存储了一些新闻和事件,具体就是一个SharePoint List,字段信息定义如下:
Column Name |
Column Type |
Description |
Title |
Single line of text |
新闻标题 |
Summary |
Multiple lines of text |
新闻摘要 |
Learn More Link |
Hyperlink or Picture |
详细链接 |
Featured |
Yes/No |
控制是否显示 |
Sort Order |
Number |
用于显示排序 |
1. 添加CQWP到页面上,首先编辑页面,默认情况下Content Query Web Part在Content Rollup类别下,我们将它添加到页面上的Top 区域中:
刚加完之后里面是空的,因为还没有指定它的数据源:
2. 配置CQWP,编辑刚刚添加的web part,我们就会看到一个web part面板如下,其中包括了CQWP特有的关键属性(Query和resentation),和web part的一些其他共同属性:
3. 我们展开Query属性部分,其中Source是数据源,根据需求,我们选择根站点下的News and Events list,注意这里的路径用的是list的internal name,下面的List Type会自动设为Custom List,Content Type是定义了将要显示的数据项的信息,因为一个list里面也有可能有好多种Content Type的定义,所以里面的数据项也相应的有好多种。需求里面的那些字段都是在News 这个Content Type里定义的,所以这里选择News。
4. Additional Filters部分用于设置过滤信息,这里选择Featured为Yes的,因为Featured是Yes/No类型的,所以它会默认出现下面的Radio Button,如果是Choice类型或Text等其他类型,下面会是一个Textbox,如果有多个过滤条件,那么就在这里相应的设置多个。
5. 再展开Presentation属性,可以设置分组,排序等信息,这里我们按照Sort Order排序,并限制最大显示条数为8如下:
6. 点击Apply按钮,然后Ok,我们就会看到页面上有数据呈现出来了,这里只显示了6条数据,是因为list里总共只添加了6条数据,而且他们的Featured都设为了Yes,即全部显示。