分享人:廣州華軟 星塵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部件顯示樣式具備必定的通用性,只要建立了個樣式,在整個網站中的任何網站頁面中均可以引用,作到了同一內容類型的展現效果一次開發處處使用。