如何在SharePoint中配置和自定义Content Query Web Part

如何在SharePoint中配置和自定义Content Query Web Part

2014-01-07 11:15 718人阅读 评论(0) 收藏 举报

之前有一篇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


用于显示排序

现在的目的就是通过CQWP把这个List里的数据显示到页面上,根据上面的字段定义,当然是要包括过滤和排序功能了。好了,下面我们具体操作一把:

1.  添加CQWP到页面上,首先编辑页面,默认情况下Content Query Web Part在Content Rollup类别下,我们将它添加到页面上的Top 区域中:

刚加完之后里面是空的,因为还没有指定它的数据源:

2.  配置CQWP,编辑刚刚添加的web part,我们就会看到一个web part面板如下,其中包括了CQWP特有的关键属性(Query和Presentation),和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,即全部显示。

虽然把数据读取出来了,但是如何自定义item的布局和样式来满足我们的需求呢?本篇blog将带你去完成自定义工作。其实完成这个任务的途径就是去修改跟这个web part相关的xslt来格式化数据,首先跟Content Query web part相关的xslt文件有三个,具体如下:


文件名 


目录 


说明 


ContentQueryMain.xsl


\Style Library\XSL Style Sheets\ContentQueryMain.xsl


这个文件用来负责web part的整体结构,里面定义了一些逻辑和函数,并在适当的时候调用Header.xsl 和 ItemStyle.xsl


ItemStyle.xsl


\Style Library\XSL Style Sheets\ItemStyle.xsl


这个文件是用来定义每条Item的样式的,里面预定义好了一部分style供我们使用,而且还可以自定义Item style


Header.xsl


\Style Library\XSL Style Sheets\Header.xsl


这个文件定义了模板去如何显示header,并且确保所有分组header的一致性

大多数情况下,我们只需要关心ItemStyle.xsl这个文件,当然有时候根据项目需要也可能会涉及到另外两个文件的改动。我们这里只需要修改ItemStyle.xsl这个文件即可,因为这三个文件是site默认自带的,为了不对其他web part造成影响,所以我们需要单独建一个folder,然后拷贝一份到我们的文件夹下再做自定义修改。以下是具体操作步骤:

1.      用SPD打开site,在/Style Library/XSL Style Sheets/目录下新建一个folder叫做NewsAndEvents,然后把上面的三个文件拷贝一份到这个folder下:

2.  将页面上配置好的web part导出到本地磁盘,修改三个xslt文件的路径及CommonViewFields属性,修改这个属性主要是添加我们自定义的字段以便在xslt中引用才能render到页面上,因为web part默认有四个字段Title, Description, LinkUrl 和 ImageUrl,所以我们只需要添加其他自定义并且需要在xslt中使用的字段信息,格式为”InternalName,FieldType”,多个字段中间用分号隔开,具体如下:

<property name="MainXslLink" type="string">/Style Library/XSL Style Sheets/NewsAndEvents/ContentQueryMain.xsl</property>
<property name="ItemXslLink" type="string">/Style Library/XSL Style Sheets/NewsAndEvents/ItemStyle.xsl</property>
<property name="HeaderXslLink" type="string">/Style Library/XSL Style Sheets/NewsAndEvents/Header.xsl</property>
<property name="CommonViewFields" type="string">LearnMoreLink,URL;Summary,Note;</property>

3.  保存修改好的web part,然后再将它导入到page上,并修改web part的title为“新闻浏览”

4.  修改ItemStyle.xsl文件,即添加我们自定义的ItemStyle,包括布局和样式如下:

5.  Edit页面上web part,展开Presentation属性,在Item Style下拉框中选择我们刚刚定义好的NewsItemStyle

6.  保存web part并check in页面,我们就能看到我们想要的布局和样式了:

时间: 2024-10-18 19:11:23

如何在SharePoint中配置和自定义Content Query Web Part的相关文章

如何在Maven中配置Spring依赖

如何在Maven中配置Spring依赖 *前言: 这篇文章讨论了如何在Maven配置Spring的一些细节,这里介绍了一些主要的Maven依赖管理内容,当然还存在一些没有讨论到的内容,不过这篇文章应该是在项目中使用Spring的一个好的起点.最新的Spring发布版可以在Maven仓库中找到.* 在Maven中Spring的基础配置 Spring是高度模块化的,可以单独使用Spring的某个库而不需要依赖Spring的其他库.比如,使用Spring Context库不需要依赖Spring Per

如何在MyEclipse中配置Tomcat?

1.下载tomcat免安装版,tomcat路径不含空格 http://download.csdn.net/detail/u014112584/7549191 2.windows -preferences-Myeclipse-servers-tomcat7.x (1)选择Enable (2)Tomcat home directory: 粘贴tomcat路径 (3)窗口-首选项-myeclipse-servers-tomcat7.x下拉的 JDK add   JavaJDK路径 3.测试tomcat

如何在IAR中配置CRC参数(转)

源:如何在IAR中配置CRC参数 前言 STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省了代码空间.CRC校验值可以用于数据传输中的数据正确性的验证,也可用于数据存储时的完整性检查.在IEC60335中,也接受通过CRC校验对FLASH的完整性进行检查.在对FLASH完整性检查的应用中,需要事先计算出整个FLASH的CRC校验值(不包括最后保存CRC值的字节),放在FLASH的末尾.在程序启动或者运行的过程中重新用同样的方法计算整个FLASH的CRC校验值,然后与

如何在Eclipse中配置Tomcat(免安装版)

如何在Eclipse中配置Tomcat(免安装版) 2013-10-09 23:19wgelgrsh | 分类:JAVA相关 | 浏览642次 分享到: 2013-10-10 17:10提问者采纳 一.确定你的Tomcat的安放路径. 这里我以自己的为例子:“E:\安装包\Apache-tomcat-6.0.29-windows-x86\apache-tomcat-6.0.29”.二.安装Eclipse和jdk(推荐1.4以上)(这个就不详细说了)三.下载插件TomcatPlugin 这里我用的

如何在Eclipse中配置Tomcat服务器

之前使用MyEclipse来开发Web应用,可以在MyEclipse中配置服务器,配置完后,直接运行服务器即可,很方便. 最近切换到Eclipse开发环境,发现使用Tomcat的方式不太一样,因此在此稍作记录. 在Eclipse中使用Tomcat运行Web应用,主要有两种模式: 1.默认方式:   在标准的web系统右键,选择Run on Server 选择Tomcat服务器,如何没有,可以点击Add新增服务器. 直接点击[Finish]按钮,就可以正常运行你的Web应用了. 2.改进方案:将应

如何在eclipse中配置反编译工具JadClipse

Q:为什么有必要在开发环境中配置反编译工具呢? A:  当运行引用了第三方jar包项目时,突然报出了jar包中的某个类的某一行出现异常.我们想看一下这个class文件的代码时,经常出现了如下图所示的场景: god ,我的内心是崩溃的. 去找源码吗?可以,but很浪费时间(除非是maven项目,在pom.xml中引入依赖jar包会连同源文件下载下来). so ,在eclipse中配置反编译工具,就可以随时查看class文件的内容了. 下面就以JadClipse为例,讲述一下配置过程,如有高见,不吝

如何在 Linux 中配置基于密钥认证的 SSH

什么是基于 SSH 密钥的认证? 众所周知,Secure Shell,又称 SSH,是允许你通过无安全网络(例如 Internet)和远程系统之间安全访问/通信的加密网络协议.无论何时使用 SSH 在无安全网络上发送数据,它都会在源系统上自动地被加密,并且在目的系统上解密.SSH 提供了四种加密方式,基于密码认证,基于密钥认证,基于主机认证和键盘认证.最常用的认证方式是基于密码认证和基于密钥认证. 在基于密码认证中,你需要的仅仅是远程系统上用户的密码.如果你知道远程用户的密码,你可以使用 ssh

如何在 Linux 中配置 sudo 访问权限

Linux 系统中 root 用户拥有 Linux 中全部控制权力.Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为. 如果其他用户想去实施一些行为,不能为所有人都提供 root 访问权限.因为如果他或她做了一些错误的操作,没有办法去纠正它. 为了解决这个问题,有什么方案吗? 我们可以把 sudo 权限发放给相应的用户来克服这种情况. sudo 命令提供了一种机制,它可以在不用分享 root 用户的密码的前提下,为信任的用户提供系统的管理权限. 他们可以执行大部分的

Python学习笔记——1、环境搭建篇(如何在Pycharm中配置Python和Django)

1.准备好以下东东,并且按照先后顺序进行安装: Python 3.6 (64-bit) Django-1.11.tar.gz pycharm-community-2016.3.2.exe 安装好了以后在cmd运行: python --version python -m django --version 确认是否安装完成 2.在D盘建立文件夹:D:\python_workspace\helloworld,在pycharm中在这个位置新建一名为helloworld的工程 3.在cmd中进入到D:\p