Build SharePoint URL Links Programmatically

I like to use Query Strings as well as building my own navigation links inside SharePoint.  The problem when you create your own menu buttons on a page is that if you use absolute encoded URLs they break if you move the site or rename a parent in the URL.  This takes a little work on the URLs that SharePoint gives you.

Here is how I use XSLT to build links, I am showing the rowview template:


<xsl:template name="dvt_1.rowview">
<xsl:variable name="BaseURL" select="@FileDirRef"/>
<xsl:variable name="LocalURL" select="substring-before(ddwrt:UrlDirName(string($BaseURL)), '/Lists')"/>
<tr>
<td>
<table border="0" cellspacing="0" width="100%" style="text-align:left;">
<tr>
<td class="NavbarCell" colspan="4">
<ul>
<li><a href="{$LocalURL}/Pages/home.aspx?Release={@Release}">Home</a></li>
<li><a href="{$LocalURL}/Pages/wb.aspx?Release={@Release}">Workbooks</a></li>
<li><a href="{$LocalURL}/Pages/ccb.aspx?Release={@Release}">CCB</a></li>
<li><a href="{$LocalURL}/Pages/dev.aspx?Release={@Release}">Development</a></li>
<li><a href="{$LocalURL}/Pages/qa.aspx?Release={@Release}">QA</a></li>
<li><a href="{$LocalURL}/Pages/ca.aspx?Release={@Release}">C&amp;A</a></li>
<li><a href="{$LocalURL}/Pages/docs.aspx?Release={@Release}">Docs</a></li>
<li><a href="{$LocalURL}/Pages/fielding.aspx?Release={@Release}">Fielding</a></li>
<li><a onfocus="OnLink(this)" href="https://server.com/project/Project%20Detail%20Pages/Schedule.aspx?ProjUid={@projuid}" target="_blank">IMS</a></li>
</ul>
</td>
</tr>
</table>
</td>
</tr>
</xsl:template>

Note:  Release is a query string I send between these pages

Comments

Popular posts from this blog

SharePoint Designer 2013 Approval Workflow with Comments

Change SharePoint server hostname and Web Application Names

The Timer Service Failed to Recycle