1

我正在尝试将 aspx 文件图标从默认图标更改为自定义图标。我为此部分编辑了 results.aspx 页面“获取的属性”的 xsl。我想确保为具有“LegalDocument”内容类型的项目显示 LegalDoc16.gif 图标。如果我不必正确配置语法,请告诉我。我可以进行类似 ContentType:"legaldocument" 的搜索,然后得到所有文件。所以我知道 contenttype 元数据属性正在被提取。请建议。

  <div class="srch-Icon" id="{concat($currentId,'_Icon')}"> 
    <xsl:choose>
        <xsl:when test="string(ContentType)='LegalDocument'">
            <img align="absmiddle" src="_layouts/images/LegalDoc16.gif" border="0" alt="{imageurl/@imageurldescription}" />
        </xsl:when>
        <xsl:otherwise>
            <img align="absmiddle" src="{imageurl}" border="0" alt="{imageurl/@imageurldescription}" />
        </xsl:otherwise>  
    </xsl:choose>   
  </div>
4

2 回答 2

2

我相信有一个错误会阻止使用 ContentType 元数据属性(请参阅http://social.msdn.microsoft.com/Forums/en/sharepoint2010general/thread/cd059e1c-7af6-454c-8568-a22e7755ce8c

您需要创建一个新的托管元数据属性并将其映射到 ows_ContentType 已爬网属性(我称为我的 CType),然后进行完全爬网(您可能需要先删除索引)以使该属性在搜索索引中可用。

然后编辑搜索核心结果 web 部件并添加

 <Column Name="CType"/>

到 Fetched Properties(在 Display Properties 下)之后<columns>

然后将您的 xml 更新为以下内容

<xsl:choose>
    <xsl:when test="ctype = 'LegalDocument'">
        <img align="absmiddle" src="_layouts/images/LegalLinkedDocument.gif" border="0" alt="{imageurl/@imageurldescription}" />
    </xsl:when> 
    <xsl:otherwise>
        <img align="absmiddle" src="{imageurl}" border="0" alt="{imageurl/@imageurldescription}" />
    </xsl:otherwise>
</xsl:choose>

PS 这个问题可能与我认为我的 xslt 格式可能不正确

于 2012-07-24T13:24:00.943 回答
0

一切都很好。在运行 powershell 之前我所要做的就是转到文档库并添加一个基于 Linked to Document 的文件(并删除测试上传文件)。之后它起作用了。

于 2012-08-22T18:26:24.463 回答