我使用的是Sharepoint 2010,我在文档库中创建了一行文本字段列。我想将该列中的文本超链接到上传到文档库中的文件。如果我在sharepoint设计器中使用以下代码,则无法正常工作。有人可以帮助我。
<a href="/{$thisNode/@FileLeafRef}"><xsl:value-of select="$thisNode/@*[name()=current()/@Name]" disable-output-escaping="yes" /></a>
感谢。
编辑: 奇怪的是,如果我在视图中公开名称列,那么一切正常。我不知道为什么它表现得像这样。有人可以请我探索。
答案 0 :(得分:0)
检查Name列的XML定义。
如果您更改它而不是链接到文档,它可能会解决您的问题。
答案 1 :(得分:0)
通过SharePoint Designer(SPD)customizing the rendering of a Field on the List View时
确保从模板中删除ddwrt:ghost
属性。
例如,对于字段内部名称ShortDesc
,SPD生成了以下字段模板:
<xsl:template name="FieldRef_Text_body.ShortDesc" ddwrt:dvt_mode="body" match ="FieldRef[@Name='ShortDesc']" mode="Text_body" ddwrt:ghost="show">
<xsl:param name="thisNode" select="."/>
<xsl:choose>
<xsl:when test="@AutoHyperLink='TRUE'">
<xsl:value-of select="$thisNode/@*[name()=current()/@Name]" disable-output-escaping ="yes"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$thisNode/@*[name()=current()/@Name]"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
因此,为了将此字段呈现为链接:
a)删除ddwrt:ghost="show"
属性
b)替换字段呈现代码
<xsl:template name="FieldRef_Text_body.ShortDesc" ddwrt:dvt_mode="body" match ="FieldRef[@Name='ShortDesc']" mode="Text_body" >
<xsl:param name="thisNode" select="."/>
<xsl:choose>
<xsl:when test="@AutoHyperLink='TRUE'">
<a href="/{$thisNode/@FileLeafRef}"><xsl:value-of select="$thisNode/@*[name()=current()/@Name]" disable-output-escaping="yes" /></a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$thisNode/@*[name()=current()/@Name]"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
ghost
属性用于标记sharepoint认为是静态的任何xslt,因此不会接受任何更改。删除ghost属性时,应保留更改