分享人:广州华软 星尘html
在进行Sharepoint开发时,常常会遇到内容展现个性化需求的问题,固然若是经过自定义开发控件对于内容展现的需求基本均可以很好的解决,但自定义开发也有很差的地方,例如可能会有潜在的兼容性问题和开发时间较长。其实Sharepint平台自带的一个内容查询Web部件功能比较实用,好比经过内容查询Web部件进行简单的配置能够很快的实现展现整个网站下全部文档库中的文档。可是内容查询Web部件默认显示的字段较少,只有标题、连接、缩略图等,若是咱们想要显示较多的字段,那就要经过对内容查询Web部件的显示样式进行自定义才能够实现。web
本文以最近一个项目需求为例: 经过内容查询Web部件显示某个网站下的全部文档,而且须要显示文档的名称、文件大小、建立者、修改时间等字段。api
显示效果:网站
1.在SPD中添加自定义样式spa
2.导出内容查询Web部件3d
3.编辑导出的内容查询Web部件htm
4.导入编辑后的内容查询Web部件blog
5.选择自定义样式ip
6.总结ci
在SPD中添加自定义样式“共享文档”:
在SPD中找到网站集的样式库,打开XSL Style Sheets,打开ItemStyle.xsl文件进行编辑,在尾部</xsl:stylesheet>前加入如下样式代码:
<!-- 如下为共享文档 样式 -->
<xsl:template name="共享文档" match="Row[@Style='共享文档']" mode="itemstyle">
<xsl:variable name="SafeLinkUrl">
<xsl:call-template name="OuterTemplate.GetSafeLink">
<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="DisplayTitle">
<xsl:call-template name="OuterTemplate.GetTitle">
<xsl:with-param name="Title" select="''"/>
<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
<xsl:with-param name="UseFileName" select="1"/>
</xsl:call-template>
</xsl:variable>
<html>
<table width="100%" cellpadding="0" cellspacing="0" class="custom_ShareDoc_table">
<xsl:if test="count(preceding-sibling::*)=0">
<tr>
<td width="5%" valign="top"><div class="item"><img width="16" height="16" border="0" src="/_layouts/15/images/icgen.gif"></img></div></td>
<td width="55%" valign="top"><div class="item">名称</div></td>
<td width="10%" valign="top"><div class="item">文件大小</div></td>
<td width="7%" valign="top" align="center"><div class="item">共享人</div></td>
<td width="23%" valign="top"><div class="item">修性时间</div></td>
</tr>
</xsl:if>
<tr>
<td width="5%" valign="top">
<xsl:if test="string-length(@DocumentIconImageUrl) != 0">
<div class="image-area-left">
<img class="image" src="{@DocumentIconImageUrl}" title="" />
</div>
</xsl:if>
</td>
<td width="55%" valign="top">
<div class="link-item">
<xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate"/>
<a href="{$SafeLinkUrl}" title="{@LinkToolTip}">
<xsl:if test="$ItemsHaveStreams = 'True'">
<xsl:attribute name="onclick">
<xsl:value-of select="@OnClickForWebRendering"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$ItemsHaveStreams != 'True' and @OpenInNewWindow = 'True'">
<xsl:attribute name="onclick">
<xsl:value-of disable-output-escaping="yes" select="$OnClickTargetAttribute"/>
</xsl:attribute>
</xsl:if>
<xsl:value-of select="$DisplayTitle"/>
</a>
</div>
</td>
<td width="10%" valign="top">
<div class="item">
<xsl:value-of select="round(number(@FileSizeDisplay) div number(1024))" />KB
</div>
</td>
<td width="7%" valign="top" align="center">
<div class="item">
<xsl:value-of select="@Author" />
</div>
</td>
<td width="23%" valign="top">
<div class="item">
<xsl:value-of select="@Modified" />
</div>
</td>
</tr>
</table>
</html>
</xsl:template>
1.在须要显示共享文档的网站页面中添加一个内容查询Web部件,编辑Web部件,设置查询条件和筛选条件,选择默认样式,而后保存设置。
2.点击Web部件的“导出”按钮将内容查询Web部件导出到本地文件。
在本地使用记事本编辑导出的内容查询Web部件 ,在文件中找到“<property name="CommonViewFields" type="string">”添加须要在内容查询Web部件中显示的字段,注意:字段名称必须是内部名称,格式为:字段名称,类型。
保存文件。
1. 在页面中删除原来的内容查询Web部件。
2. 在页面中添加Web部件时导入本地的自定义Web部件文件“共享文档.webpart”,并添加到页面中。
编辑Web部件,在演示文稿中的显示样式处选择“共享文档”样式。
保存配置,保存页面。
经过建立自定义的内容查询Web部件显示样式,便可实现对数据展现个性化的需求,并且能够节省开发时间,自定义的内容查询Web部件显示样式具备必定的通用性,只要建立了个样式,在整个网站中的任何网站页面中均可以引用,作到了同一内容类型的展现效果一次开发处处使用。