Я создал собственный стиль в своем ItemStyle.xsl для отображения списка ссылок из списка ссылок в SharePoint 2007. Единственная проблема, которую я получаю, это то, что я могу получить ссылку на элемент в списке, но Я могу вытащить URL-адрес, хранящийся в элементе в списке. Вот мой стиль:
<xsl:template name="LinkListStyled" match="*" mode="itemstyle">
<xsl:param name="CurPos" />
<xsl:param name="LastRow" />
<xsl:variable name="tableStart">
<xsl:if test="$CurPos = 1">
<![CDATA[
<table style="border:0px ; border-collapse:collapse; ">
<tr>
<td align="left" width="70px">
<IMG style="BORDER-BOTTOM: 0px solid; BORDER-LEFT: 0px solid; BORDER-TOP: 0px solid; BORDER-RIGHT: 0px solid" border=0 src="http://intranet.test.co.uk/images/sharepoint_sites/practiceareas/knowhowgreen2.png">
</td>
<td align="left">
<table style="padding:5px">
]]>
</xsl:if>
</xsl:variable>
<xsl:variable name="tableEnd">
<xsl:if test="$CurPos = $LastRow">
<![CDATA[
</table>
</td>
</tr>
</table>]]>
</xsl:if>
</xsl:variable>
<xsl:value-of select="$tableStart" disable-output-escaping="yes"/>
<xsl:if test="($CurPos mod 2) = 1">
<xsl:text disable-output-escaping="yes">
<![CDATA[<tr>
<td width="2px">
<IMG src="http://intranet.test.co.uk/images/sharepoint/green_square_header.gif" />
</td>
<td width="150px">
<a href="
]]>
</xsl:text>
<xsl:value-of select="@FileRef"/>
<xsl:text disable-output-escaping="yes">
<![CDATA["> ]]>
</xsl:text>
<xsl:value-of select="@Title"></xsl:value-of>
<xsl:text disable-output-escaping="yes">
<![CDATA[</a></td>]]>
</xsl:text>
</xsl:if>
<xsl:if test="($CurPos mod 2) = 0">
<xsl:text disable-output-escaping="yes">
<![CDATA[
<td width="2px">
<IMG src="http://intranet.test.co.uk/images/sharepoint/green_square_header.gif" />
</td>
<td width="150px">
]]>
</xsl:text>
<xsl:value-of select="@Title"></xsl:value-of><br />
<xsl:text disable-output-escaping="yes">
<![CDATA[</td>
</tr>]]>
</xsl:text>
</xsl:if>
<xsl:value-of select="$tableEnd" disable-output-escaping="yes" />
</xsl:template>
Я пытался использовать те же методы, что и в стиле LinkList:
<xsl:variable name="DisplayTitle">
<xsl:call-template name="OuterTemplate.GetTitle">
<xsl:with-param name="Title" select="@URL"/>
<xsl:with-param name="UrlColumnName" select="'URL'"/>
</xsl:call-template>
</xsl:variable>
Но как только я добавляю это в свой стиль, это нарушает представление. Странно, если я помещаю вызов OuterTemplate вне моего стиля, а затем ссылаюсь на значения в моем стиле, он не падает, и я могу просмотреть значения, однако это не работает для URL (я предполагаю, что это потому что он должен тянуть через заголовок, чтобы получить URL). Я пробовал несколько разных вещей, но безрезультатно.