Solved

Use XSL to Convert XML Data To Hyperlink

Posted on 2008-06-19
3
2,288 Views
Last Modified: 2013-11-18
I am pulling a URL from a database and an XSL is formatting this data.  I need one of the fields to be converted to a hyperlink.  This XML data is in a Sharepoint webpart so it is not picking up the URL as a hyperlink.

How can I convert the variable @PreFireDrawingName to a URL?


<xsl:stylesheet version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.Sharepoint.WebControls">

	<xsl:output method="html" indent="no" />

	<xsl:param name="PreviousLinkText">Previous</xsl:param>

	<xsl:param name="NextLinkText">Next</xsl:param>

	<xsl:param name="EditViewText">Edit View</xsl:param>

	<xsl:param name="AscendingText">Ascending</xsl:param>

	<xsl:param name="DescendingText">Descending</xsl:param>

	<xsl:param name="RetrieveDataText">Retrieve Data</xsl:param>

	<xsl:param name="ActionsText">Actions</xsl:param>

	<xsl:param name="FilterNameText">Filter name</xsl:param>

	<xsl:param name="OperatorText">Operator</xsl:param>

	<xsl:param name="AddText">Add</xsl:param>

	<xsl:param name="CurrentLCID">1033</xsl:param>

	<xsl:param name="IsRTL">

	</xsl:param>

	<xsl:param name="dvt_apos">'</xsl:param>

	<xsl:param name="dvt_adhocmode">sort</xsl:param>

	<xsl:param name="ClickThroughUrl" />

	<xsl:param name="dvt_url" />

	<xsl:param name="jsMenuApplication" />

	<xsl:param name="jsMenuEntity" />

	<xsl:param name="jsMenuLoadingMessage" />

	<xsl:param name="dvt_1_automode">0</xsl:param>

	<xsl:param name="filterParam" />

	<xsl:param name="dvt_firstrow">1</xsl:param>

	<xsl:param name="dvt_nextpagedata" />

	<xsl:param name="IsMenuVisible" />

	<xsl:param name="IsEditViewVisible" />

	<xsl:param name="dvt_partguid" />

	<xsl:param name="ColumnKey">Kunnr</xsl:param>

	<xsl:param name="dvt_1_form_selectkey" />

	<xsl:param name="dvt_sortdir">ascending</xsl:param>

	<xsl:param name="dvt_sortfield" />

	<xsl:param name="dvt_emptytext">

	</xsl:param>

	<xsl:param name="dvt_filterfields" />

	<xsl:param name="ColName_0">

	</xsl:param>

	<xsl:param name="ColName_1">

	</xsl:param>

	<xsl:param name="ColName_2">

	</xsl:param>

	<xsl:param name="ColName_3">

	</xsl:param>

	<xsl:template name="dvt.headerfield">

		<xsl:param name="fieldname" />

		<xsl:param name="fieldtitle" />

		<xsl:param name="displayname" />

		<xsl:param name="fieldtype">0</xsl:param>

		<xsl:variable name="sortfield">

			<xsl:choose>

				<xsl:when test="substring($fieldname, 1, 1) = '@'">

					<xsl:value-of select="substring($fieldname, 2)" />

				</xsl:when>

				<xsl:otherwise>

					<xsl:value-of select="$fieldname" />

				</xsl:otherwise>

			</xsl:choose>

		</xsl:variable>

		<xsl:variable name="linkdir">

			<xsl:choose>

				<xsl:when test="$dvt_sortfield = $sortfield and $dvt_sortdir = 'ascending'">descending</xsl:when>

				<xsl:otherwise>ascending</xsl:otherwise>

			</xsl:choose>

		</xsl:variable>

		<xsl:variable name="sortText">

			<xsl:choose>

				<xsl:when test="$linkdir='descending'">' + 'descending' + '</xsl:when>

				<xsl:otherwise>' + 'ascending' + '</xsl:otherwise>

			</xsl:choose>

		</xsl:variable>

		<xsl:variable name="separator" select="' '" />

		<xsl:variable name="connector" select="';'" />

		<table CtxNum="1" cellspacing="0" class="ms-unselectedtitle" onmouseover="OnMouseOverAdHocFilter(this, '{concat($displayname,$separator,$fieldname, $separator,$fieldtype, $connector, $CurrentLCID, $separator, $dvt_partguid)}')">

			<tr>

				<td width="100%" class="ms-vb" nowrap="">

					<a>

						<xsl:attribute name="href">

							javascript: <xsl:value-of select="ddwrt:GenFireServerEvent(concat('dvt_sortfield={',$sortfield,'};dvt_sortdir={',$sortText,'}'))" />;

						</xsl:attribute>

						<xsl:value-of select="$fieldtitle" />

						<xsl:if test="$dvt_sortfield = $sortfield">

							<xsl:choose>

								<xsl:when test="$dvt_sortdir = 'ascending'">

									<img border="0" alt="{$AscendingText}" src="{ddwrt:FieldSortImageUrl('Desc')}" />

								</xsl:when>

								<xsl:when test="$dvt_sortdir = 'descending'">

									<img border="0" alt="{$DescendingText}" src="{ddwrt:FieldSortImageUrl('Asc')}" />

								</xsl:when>

							</xsl:choose>

						</xsl:if>

					</a>

					<xsl:if test="contains($dvt_filterfields, concat($fieldname, ';' ))">

						<img src="/_layouts/images/filter.gif" border="0" alt="" />

					</xsl:if>

				</td>

				<td>

					<img src="/_layouts/images/blank.gif" width="13" style="visibility: hidden" alt="" />

				</td>

			</tr>

		</table>

	</xsl:template>

	<xsl:template match="/">

		<xsl:call-template name="dvt_1" />

	</xsl:template>

	<xsl:template name="dvt_1">

		<xsl:variable name="dvt_StyleName">Table</xsl:variable>

		<xsl:variable name="Rows" select="/dsQueryResponse/NewDataSet/Row" />

		<xsl:variable name="dvt_RowCount" select="count($Rows)" />

		<xsl:variable name="RowLimit" select="20" />

		<xsl:variable name="FirstRow" select="$dvt_firstrow" />

		<xsl:variable name="LastRow">

			<xsl:choose>

				<xsl:when test="($FirstRow + $RowLimit - 1) &gt; $dvt_RowCount">

					<xsl:value-of select="$dvt_RowCount" />

				</xsl:when>

				<xsl:otherwise>

					<xsl:value-of select="$FirstRow + $RowLimit - 1" />

				</xsl:otherwise>

			</xsl:choose>

		</xsl:variable>

		<xsl:call-template name="dvt_1.commandheader">

			<xsl:with-param name="FirstRow" select="$FirstRow" />

			<xsl:with-param name="LastRow" select="$LastRow" />

			<xsl:with-param name="RowLimit" select="$RowLimit" />

			<xsl:with-param name="dvt_RowCount" select="$dvt_RowCount" />

		</xsl:call-template>

		<table id="BdwpRows" border="0" width="100%" cellpadding="2" cellspacing="0">

			<tr valign="top">

				<th class="ms-vh" width="1" />

				<th class="ms-vh" align="left">

					<xsl:call-template name="dvt.headerfield" ddwrt:atomic="1">

						<xsl:with-param name="fieldname">@PFD_ID</xsl:with-param>

						<xsl:with-param name="fieldtitle">

							<xsl:value-of select="$ColName_0" />

						</xsl:with-param>

						<xsl:with-param name="displayname">

							<xsl:value-of select="$ColName_0" />

						</xsl:with-param>

						<xsl:with-param name="fieldtype">text</xsl:with-param>

					</xsl:call-template>

				</th>

				<th class="ms-vh" align="left">

					<xsl:call-template name="dvt.headerfield" ddwrt:atomic="1">

						<xsl:with-param name="fieldname">@Occupancy</xsl:with-param>

						<xsl:with-param name="fieldtitle">

							<xsl:value-of select="$ColName_1" />

						</xsl:with-param>

						<xsl:with-param name="displayname">

							<xsl:value-of select="$ColName_1" />

						</xsl:with-param>

						<xsl:with-param name="fieldtype">text</xsl:with-param>

					</xsl:call-template>

				</th>

				<th class="ms-vh" align="left">

					<xsl:call-template name="dvt.headerfield" ddwrt:atomic="1">

						<xsl:with-param name="fieldname">@Address</xsl:with-param>

						<xsl:with-param name="fieldtitle">

							<xsl:value-of select="$ColName_2" />

						</xsl:with-param>

						<xsl:with-param name="displayname">

							<xsl:value-of select="$ColName_2" />

						</xsl:with-param>

						<xsl:with-param name="fieldtype">text</xsl:with-param>

					</xsl:call-template>

				</th>

				<th class="ms-vh" align="left">

					<xsl:call-template name="dvt.headerfield" ddwrt:atomic="1">

						<xsl:with-param name="fieldname">@PreFireDrawingName</xsl:with-param>

						<xsl:with-param name="fieldtitle">

							<xsl:value-of select="$ColName_3" />

						</xsl:with-param>

						<xsl:with-param name="displayname">

							<xsl:value-of select="$ColName_3" />

						</xsl:with-param>

						<xsl:with-param name="fieldtype">text</xsl:with-param>

					</xsl:call-template>

				</th>

			</tr>

			<xsl:call-template name="dvt_1.body">

				<xsl:with-param name="Rows" select="$Rows" />

				<xsl:with-param name="FirstRow" select="$dvt_firstrow" />

				<xsl:with-param name="LastRow" select="$LastRow" />

			</xsl:call-template>

		</table>

	</xsl:template>

	<xsl:template name="dvt_1.body">

		<xsl:param name="Rows" />

		<xsl:param name="FirstRow" />

		<xsl:param name="LastRow" />

		<xsl:for-each select="$Rows">

			<xsl:if test="position() &gt;= $FirstRow and position() &lt;= $LastRow">

				<xsl:call-template name="dvt_1.rowview" />

			</xsl:if>

		</xsl:for-each>

	</xsl:template>

	<xsl:template name="dvt_1.rowview">

		<tr>

			<td class="ms-vb" width="1">

				<xsl:choose>

					<xsl:when test="$dvt_1_automode = '1'">

						<xsl:call-template name="dvt_1.automode">

							<xsl:with-param name="KeyField">

							</xsl:with-param>

							<xsl:with-param name="KeyValue" select="@*[name()=$ColumnKey]" />

							<xsl:with-param name="Mode">select</xsl:with-param>

						</xsl:call-template>

					</xsl:when>

					<xsl:otherwise>

						<span ddwrt:amkeyfield="" ddwrt:amkeyvalue="''" ddwrt:ammode="select" />

					</xsl:otherwise>

				</xsl:choose>

			</td>

			<td class="ms-vb">

				<xsl:attribute name="style">

					<xsl:choose>

						<xsl:when test="$dvt_1_form_selectkey = @*[name()=$ColumnKey]">color:blue</xsl:when>

						<xsl:otherwise />

					</xsl:choose>

				</xsl:attribute>

				<xsl:variable name="fieldValue">

					<xsl:call-template name="LFtoBR">

						<xsl:with-param name="input">

							<xsl:value-of select="@PFD_ID" />

						</xsl:with-param>

					</xsl:call-template>

				</xsl:variable>

				<xsl:copy-of select="$fieldValue" />

			</td>

			<td class="ms-vb">

				<xsl:attribute name="style">

					<xsl:choose>

						<xsl:when test="$dvt_1_form_selectkey = @*[name()=$ColumnKey]">color:blue</xsl:when>

						<xsl:otherwise />

					</xsl:choose>

				</xsl:attribute>

				<xsl:variable name="fieldValue">

					<xsl:call-template name="LFtoBR">

						<xsl:with-param name="input">

							<xsl:value-of select="@Occupancy" />

						</xsl:with-param>

					</xsl:call-template>

				</xsl:variable>

				<xsl:copy-of select="$fieldValue" />

			</td>

			<td class="ms-vb">

				<xsl:attribute name="style">

					<xsl:choose>

						<xsl:when test="$dvt_1_form_selectkey = @*[name()=$ColumnKey]">color:blue</xsl:when>

						<xsl:otherwise />

					</xsl:choose>

				</xsl:attribute>

				<xsl:variable name="fieldValue">

					<xsl:call-template name="LFtoBR">

						<xsl:with-param name="input">

							<xsl:value-of select="@Address" />

						</xsl:with-param>

					</xsl:call-template>

				</xsl:variable>

				<xsl:copy-of select="$fieldValue" />

			</td>

			<td class="ms-vb">

				<xsl:attribute name="style">

					<xsl:choose>

						<xsl:when test="$dvt_1_form_selectkey = @*[name()=$ColumnKey]">color:blue</xsl:when>

						<xsl:otherwise />

					</xsl:choose>

				</xsl:attribute>

				<xsl:variable name="fieldValue">

					<xsl:call-template name="LFtoBR">

						<xsl:with-param name="input">

							<xsl:value-of select="@PreFireDrawingName" />

						</xsl:with-param>

					</xsl:call-template>

				</xsl:variable>

				<xsl:copy-of select="$fieldValue" />

			</td>

		</tr>

	</xsl:template>

	<xsl:template name="dvt_1.navigation">

		<xsl:param name="FirstRow" />

		<xsl:param name="LastRow" />

		<xsl:param name="RowLimit" />

		<xsl:param name="dvt_RowCount" />

		<xsl:variable name="PrevRow">

			<xsl:choose>

				<xsl:when test="$FirstRow - $RowLimit &lt; 1">1</xsl:when>

				<xsl:otherwise>

					<xsl:value-of select="$FirstRow - $RowLimit" />

				</xsl:otherwise>

			</xsl:choose>

		</xsl:variable>

		<xsl:variable name="NextRow">

			<xsl:choose>

				<xsl:when test="$LastRow &gt;= $dvt_RowCount">

					<xsl:value-of select="$FirstRow" />

				</xsl:when>

				<xsl:otherwise>

					<xsl:value-of select="$LastRow + 1" />

				</xsl:otherwise>

			</xsl:choose>

		</xsl:variable>

		<asp:Literal id="PagerControl" runat="server">

			<xsl:choose>

				<xsl:when test="$dvt_RowCount = 0">

					<xsl:value-of select="$dvt_emptytext" />

				</xsl:when>

				<xsl:when test="$FirstRow = 1 and $LastRow = $dvt_RowCount">

				</xsl:when>

				<xsl:otherwise>

					<xsl:if test="$FirstRow != 1">

						<a>

							<xsl:attribute name="href">

								javascript: <xsl:value-of select="ddwrt:GenFireServerEvent(concat('dvt_firstrow={',$PrevRow,'}'))" />;

							</xsl:attribute>

							<img src="{ddwrt:PagingImageUrl('Previous')}" border="0" alt="{$PreviousLinkText}" />

						</a>

						<xsl:text disable-output-escaping="yes" ddwrt:nbsp-preserve="yes">&amp;nbsp;</xsl:text>

					</xsl:if>

					<xsl:value-of select="$FirstRow" /> - <xsl:value-of select="$LastRow" /><xsl:if test="$LastRow != $dvt_RowCount">

						<xsl:text disable-output-escaping="yes" ddwrt:nbsp-preserve="yes">&amp;nbsp;</xsl:text>

						<a>

							<xsl:attribute name="href">

								javascript: <xsl:value-of select="ddwrt:GenFireServerEvent(concat('dvt_firstrow={',$NextRow,'}'))" />;

							</xsl:attribute>

							<img src="{ddwrt:PagingImageUrl('Next')}" border="0" alt="{$NextLinkText}" />

						</a>

					</xsl:if>

				</xsl:otherwise>

			</xsl:choose>

			<xsl:text disable-output-escaping="yes" ddwrt:nbsp-preserve="yes">&amp;nbsp;</xsl:text>

			<xsl:text disable-output-escaping="yes" ddwrt:nbsp-preserve="yes">&amp;nbsp;</xsl:text>

			<xsl:if test="$IsEditViewVisible">

				<a href="{$dvt_url}">

					<xsl:value-of select="$EditViewText" />

				</a>

				<xsl:text disable-output-escaping="yes" ddwrt:nbsp-preserve="yes">&amp;nbsp;</xsl:text>

				<xsl:text disable-output-escaping="yes" ddwrt:nbsp-preserve="yes">&amp;nbsp;</xsl:text>

			</xsl:if>

		</asp:Literal>

	</xsl:template>

	<xsl:template name="dvt_1.commandheader">

		<xsl:param name="FirstRow" />

		<xsl:param name="LastRow" />

		<xsl:param name="RowLimit" />

		<xsl:param name="dvt_RowCount" />

		<div>

			<xsl:call-template name="dvt_1.navigation">

				<xsl:with-param name="FirstRow" select="$FirstRow" />

				<xsl:with-param name="LastRow" select="$LastRow" />

				<xsl:with-param name="RowLimit" select="$RowLimit" />

				<xsl:with-param name="dvt_RowCount" select="$dvt_RowCount" />

			</xsl:call-template>

			<asp:PlaceHolder id="ActionBarTable" runat="server">

				<table class="ms-menutoolbar" cellpadding="2" cellspacing="0" border="0" width="100%">

					<tr>

						<td class="ms-toolbar" style="padding-left:3px;text-align:left" nowrap="true">

							<xsl:value-of select="$ActionsText" />

						</td>

						<td class="ms-toolbar" style="padding-right:3px;text-align:right" nowrap="true">

							<xsl:value-of select="$EditViewText" />

						</td>

					</tr>

				</table>

			</asp:PlaceHolder>

			<asp:PlaceHolder id="SearchTable" runat="server">

				<table width="100%" style="background-color:#efefd6">

					<tr class="ms-vb">

						<td>

							<select>

								<option>

									<xsl:value-of select="$FilterNameText" />

								</option>

							</select>

						</td>

						<td>

							<select>

								<option>

									<xsl:value-of select="$OperatorText" />

								</option>

							</select>

						</td>

						<td width="100%" nowrap="true">

							<input class="ms-input" style="width:100%" />

						</td>

						<td valign="middle">

							<a href="#">

								<xsl:value-of select="$AddText" />

							</a>

						</td>

					</tr>

				</table>

				<table width="100%" style="background-color:#efefd6">

					<tr>

						<td style="width:16pt;" valign="middle">

							<xsl:choose>

								<xsl:when test="$IsRTL">

									<img src="/_layouts/images/icongo01RTL.gif" border="0" />

								</xsl:when>

								<xsl:otherwise>

									<img src="/_layouts/images/icongo01.gif" border="0" />

								</xsl:otherwise>

							</xsl:choose>

						</td>

						<td class="ms-vb" valign="middle">

							<a href="#">

								<xsl:value-of select="$RetrieveDataText" />

							</a>

						</td>

					</tr>

				</table>

			</asp:PlaceHolder>

		</div>

	</xsl:template>

	<xsl:template name="dvt_1.automode">

		<xsl:param name="KeyField" />

		<xsl:param name="KeyValue" />

		<xsl:param name="Mode" />

		<table border="0" cellspacing="0" cellpadding="1">

			<tr>

				<xsl:choose>

					<xsl:when test="$Mode = 'edit'">

						<td class="ms-vb" />

						<td class="ms-vb" />

						<td class="ms-vb" />

					</xsl:when>

					<xsl:when test="$Mode = 'insert'">

						<td class="ms-vb" />

						<td class="ms-vb" />

						<td class="ms-vb" />

					</xsl:when>

					<xsl:otherwise>

						<td class="ms-vb" />

						<td class="ms-vb" />

						<td class="ms-vb" />

						<td class="ms-vb" />

						<td class="ms-vb">

							<a href="#">

								<xsl:attribute name="onclick">

									<xsl:value-of select="ddwrt:GenFireServerEvent(concat('dvt_1_form_selectkey={',$KeyValue,'}'))" />; return false;

								</xsl:attribute>

								<xsl:choose>

									<xsl:when test="$dvt_1_form_selectkey = @*[name()=$ColumnKey]">

										<img border="0" style="cursor: hand" src="/_layouts/images/rbsel.gif" />

									</xsl:when>

									<xsl:otherwise>

										<img border="0" style="cursor: hand" src="/_layouts/images/rbunsel.gif" />

									</xsl:otherwise>

								</xsl:choose>

							</a>

						</td>

					</xsl:otherwise>

				</xsl:choose>

			</tr>

		</table>

	</xsl:template>

	<xsl:template name="formatString">

		<xsl:param name="stringvalue" />

		<xsl:param name="separator" />

		<xsl:variable name="curStr" select="substring-after($stringvalue, $separator)" />

		<xsl:choose>

			<xsl:when test="contains($curStr, $separator)">

				<xsl:value-of select="substring-before($stringvalue, $separator)" />

				<xsl:value-of select="ddwrt:UrlEncode(@*[name()=substring-before($curStr, $separator)])" />

				<xsl:call-template name="formatString">

					<xsl:with-param name="stringvalue" select="substring-after($curStr, $separator)" />

					<xsl:with-param name="separator" select="$separator" />

				</xsl:call-template>

			</xsl:when>

			<xsl:otherwise>

				<xsl:value-of select="$stringvalue" />

			</xsl:otherwise>

		</xsl:choose>

	</xsl:template>

	<xsl:template name="OpenActionsMenu">

		<xsl:param name="method" />

		<xsl:param name="id" />

		<xsl:param name="menuText" />

		<xsl:value-of select="$method" />

		<xsl:text>('</xsl:text>

		<xsl:value-of select="$jsMenuLoadingMessage" />

		<xsl:text>','</xsl:text>

		<xsl:value-of select="ddwrt:EcmaScriptEncode($menuText)" />

		<xsl:text>',false,'</xsl:text>

		<xsl:value-of select="$jsMenuApplication" />

		<xsl:text>','</xsl:text>

		<xsl:value-of select="$jsMenuEntity" />

		<xsl:text>','</xsl:text>

		<xsl:value-of select="ddwrt:EcmaScriptEncode($id)" />

		<xsl:text>');</xsl:text>

	</xsl:template>

	<xsl:template name="_trimLF">

		<xsl:param name="input" />

		<xsl:choose>

			<xsl:when test="starts-with($input, '&#xA;')">

				<xsl:call-template name="_trimLF">

					<xsl:with-param name="input" select="substring($input, 2)" />

				</xsl:call-template>

			</xsl:when>

			<xsl:when test="substring($input, string-length($input), 1) = '&#xA;'">

				<xsl:call-template name="_trimLF">

					<xsl:with-param name="input" select="substring($input, 1, string-length($input)-1)" />

				</xsl:call-template>

			</xsl:when>

			<xsl:otherwise>

				<xsl:value-of select="$input" />

			</xsl:otherwise>

		</xsl:choose>

	</xsl:template>

	<xsl:template name="_LFtoBRloop">

		<xsl:param name="input" />

		<xsl:variable name="beforeText" select="substring-before($input, '&#xA;')" />

		<xsl:choose>

			<xsl:when test="string-length($beforeText) = 0 and substring($input, 1, 1) != '&#xA;'">

				<xsl:value-of select="$input" />

			</xsl:when>

			<xsl:otherwise>

				<xsl:value-of select="$beforeText" />

				<br />

				<xsl:call-template name="_LFtoBRloop">

					<xsl:with-param name="input" select="substring($input, string-length($beforeText)+2)" />

				</xsl:call-template>

			</xsl:otherwise>

		</xsl:choose>

	</xsl:template>

	<xsl:template name="LFtoBR">

		<xsl:param name="input" />

		<xsl:choose>

			<xsl:when test="substring-before($input, '&#xA;') = ''">

				<xsl:value-of select="$input" />

			</xsl:when>

			<xsl:otherwise>

				<xsl:call-template name="_LFtoBRloop">

					<xsl:with-param name="input">

						<xsl:call-template name="_trimLF">

							<xsl:with-param name="input" select="translate($input, '&#xD;', '')" />

						</xsl:call-template>

					</xsl:with-param>

				</xsl:call-template>

			</xsl:otherwise>

		</xsl:choose>

	</xsl:template>

</xsl:stylesheet>

Open in new window

0
Comment
Question by:cjspsx
3 Comments
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 21828962
@PreFireDrawingName  doesn't indicate a variable but an attribute named PreFireDrawingName in the current context
if you would have a variable with that name, it would be used as $PreFireDrawingName, but you don't have one declared I believe
so I assume you are working with the attribute instead

you can make it a url like this
<url href="{@PreFireDrawingName }"><xsl:value-of select="@PreFireDrawingName"/></url>

note the {}, those are attribute value templates and make the evaluation of the containded XPath expression as the value of the href attribute

It doesn't really help to dump 500+ lines of XSLT on a page and hope we will figure it out.
I can't really bother with analysing it.
Please post isolated bits of code to make the question clear to us
(I think you are changing an existing template, I hope you know what you are doing)

I spotted at least one thing that will not work as you would expect

<xsl:call-template name="dvt.headerfield" ddwrt:atomic="1">
   <xsl:with-param name="fieldname">@PreFireDrawingName</xsl:with-param>

the parameter field name will not have the value of the attribute, but will be a fixed string "@PreFireDrawingName"
if you want the value of the attribute to be passed, you will need
either
<xsl:with-param name="fieldname" select="@PreFireDrawingName"/>
or have an xsl:value-of inside the xsl:with-param element

cheers

Geert
0
 

Author Comment

by:cjspsx
ID: 21831068
This is a header value for a table:
<xsl:call-template name="dvt.headerfield" ddwrt:atomic="1">
   <xsl:with-param name="fieldname">@PreFireDrawingName</xsl:with-param>

I am not concerned with the header value.

This line of suggested code does not work:
<url href="{@PreFireDrawingName }"><xsl:value-of select="@PreFireDrawingName"/></url>

The snippet I am trying to turn into a hyperlink is:
<td class="ms-vb">

<xsl:attribute name="style">

<xsl:choose>

<xsl:when test="$dvt_1_form_selectkey = @*[name()=$ColumnKey]">color:blue</xsl:when>

<xsl:otherwise />

</xsl:choose>

</xsl:attribute>

<xsl:variable name="fieldValue">

<xsl:call-template name="LFtoBR">

<xsl:with-param name="input">					

<xsl:value-of select="@PreFireDrawingName" />

</xsl:with-param>

</xsl:call-template>

</xsl:variable>

<xsl:copy-of select="$fieldValue" />

</td>

Open in new window

0
 
LVL 10

Accepted Solution

by:
BobSiemens earned 125 total points
ID: 21848640
Starting with typical hyperlink HTML:

<a href="http://www.w3schools.com">Hyperlink</a>


Your XSL would look like:

<a><xsl:attritute name="href"><xsl:value-of select="@PreFireDrawingName"/></xsl:attritute>Hyperlink</a>
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Styling your websites can become very complex. Here I'll show how SASS can help you better organize, maintain and reuse your CSS code.
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
The viewer will the learn the benefit of plain text editors and code an HTML5 based template for use in further tutorials.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now