很抱歉,本來是有截圖的,可以讓過程看得更清楚些,但可能由于機器的原因,圖片始終無法上傳.所以只能寫文字版了!
??? 在
Office SharePoint Server 2007
中的內容查詢
Web Part
只支持單個列進行顯示(默認為標題列),即使將列表中的列設置為富文本格式在內容查詢
Web Part
中也顯示為不帶樣式的文本。下面的方法將實現在內容查詢
Web Part
中顯示我們添加的列并使用樣式。
1. ?????? 為通知列表添加自定義列
在本例中我們為通知添加的自定義欄名稱為“顯示標題”,多行文本;富文本類型。
* 關鍵要點:如果自定義欄的名稱為非英文,為了避免 SPField.InternalName 屬性被編碼需要在創建時先用英文名稱代替,并須牢記該名稱,我們在后面的修改均用該英文名稱。創建完成后我們再將欄的名稱修改為中文,此時 SPField.InternalName 屬性并不會被修改,而維持原命名的英文名稱.
2. ?????? 將內容查詢 WebPart 導出并修改
在頁面中加入一個內容查詢 WebPart ,將其查詢設置為我們剛才所修改的通知列表。通過其上下文菜單將其導出成文件。
我們用記事本打開保存到本地磁盤的 .webpart 文件,找到 <property name="CommonViewFields" /> ,將其修改為:
<property name="CommonViewFields" type="string">
CustomTitle
,
RichText
;</property>
其中的
CustomTitle
為我們上一步中添加的自定義欄的名稱(第一次輸入的英文名稱),
RichText
為該欄目的類型,保存該修改。
3.
??????
修改
XSL
文件
我們用 SharePoint Designer 打開網站 ( 如 http://moss:8000) ,在文件夾列表中找到 \Style Library\XSL Style Sheets 目錄,將會看到 ItemStyle.xsl 、 ContentQueryMain.xsl 、 SummaryLinkMain.xsl 三個文件,我們將會對其進行修改
? ????????????????????????????????????????????? 打開 ContentQueryMain.xsl 找到 <xsl:template name="OuterTemplate.GetTitle"> 將該 template 定義復制,將復本的名稱更改為 OuterTemplate.GetCustomTitle ,相應的修改如下:
<xsl:template name="OuterTemplate.GetCustomTitle">
??????? <xsl:param name="CustomTitle" select="@CustomTitle"/>
??????? <xsl:param name="UrlColumnName"/>
??????? <xsl:if test="string-length($CustomTitle) != 0">
??????????? <xsl:value-of select="$CustomTitle"/>
??????? </xsl:if>
??????? <xsl:if test="string-length($CustomTitle) = 0">
??????????? <xsl:if test="$UseCopyUtil = 'True'">
??????????????? <xsl:value-of select="$BlankTitle" />
??????????? </xsl:if>
??????????? <xsl:if test="$UseCopyUtil != 'True'">
??????????????? <xsl:call-template name="OuterTemplate.GetPageNameFromUrl">
??????????????????? <xsl:with-param name="UrlColumnName" select="$UrlColumnName"/>
??????????????? </xsl:call-template>
?? ????????? </xsl:if>
??????? </xsl:if>
</xsl:template>
保存修改。
? ?? 打開 SummaryLinkMain.xsl 文件找到 <xsl:template name="OuterTemplate.GetTitle"> 將該 template 復制,將復本的名稱更改為 GetCustomTitle ,相應的修改如下:
??? <xsl:template name="OuterTemplate.GetCustomTitle">
??????? <xsl:param name="CustomTitle" select="@CustomTitle"/>
??????? <xsl:value-of select="$CustomTitle"/>
</xsl:template>
保存修改。
? ? 打開 ItemStyle.xsl 文件,我們需要在該文件中加入一個樣式定義
找到 <xsl:template name="Default" match="*" 將這個名為 Default 的 template 復制一份,將 name 屬性修改為 AnnouceList , match 屬性修改為 Row[@Style=’AnnouceList’] 。并在 variable 中加入在上一步驟中加入的自定義欄的定義,并命名為 CustomTitle (見下文示例)。
修改后的 template 定義為:
??????? <xsl:template name="AnnouceList" match="Row[@Style= AnnouceList]" 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="SafeImageUrl">
??????????? <xsl:call-template name="OuterTemplate.GetSafeStaticUrl">
??????????????? <xsl:with-param name="UrlColumnName" select="'ImageUrl'"/>
??????????? </xsl:call-template>
??????? </xsl:variable>
???????
<xsl:variable name="CustomTitle">
???????????
<xsl:call-template name="OuterTemplate.GetCustomTitle">
???????????????
<xsl:with-param name="Title" select="@CustomTitle"/>
???????????????
<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
???????????
</xsl:call-template>
???????
</xsl:variable>
??????? <xsl:variable name="LinkTarget">
??????????? <xsl:if test="@OpenInNewWindow = 'True'" >_blank</xsl:if>
??????? </xsl:variable>
??????? <div id="linkitem" class="item">
??????????? <xsl:if test="string-length($SafeImageUrl) != 0">
??????????????? <div class="image-area-left">
??????????????????? <a href="{$SafeLinkUrl}" target="{$LinkTarget}">
??????????????????????? <img class="image" src="{$SafeImageUrl}" alt="{@ImageUrlAltText}" />
??????????????????? </a>
??????????????? </div>
??????????? </xsl:if>
??????? ???? <div class="link-item">
??????????? <xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate"/> ????
??????????? <table style="width:100%">
??????????? ???????? <tr>
??????????? ?????????????????? <td style="width:100%" class="itemlink-item">
??????????? ??????????????????????????? <a href="{$SafeLinkUrl}" mce_href="{$SafeLinkUrl}" target="{$LinkTarget}" title="{@LinkToolTip}">
??????????? ???????????????????????????????????? <xsl:value-of select="$CustomTitle" disable-output-escaping = "yes"/>
??????????? ??????????????????????????? </a>
??????????? ?????????????????? </td>
??????????? ???????? </tr>
??????????? </table>
???????????? </div>
??????? </div>
</xsl:template>
? 保存修改。
打開網站集站點管理 - 》 web 部件,將修改的 .webpart 文件上傳 ,將該 webpart 名稱設置為“公告欄”.
5. ?????? 將新加入的 webpart 重新加入頁面,修改其 webpart 屬性。
將項目樣式設置為我們在上一步的 XSL 定義中的樣式" AnnouceList "。點擊“確定”按鈕。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
