<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Master Pages, Themes and Navigation Controls</title><link>http://forums.asp.net/139.aspx</link><description>Discussions of MasterPages, Themes, and other page-related features. &lt;A href="http://aspadvice.com/SignUp/list.aspx?l=164&amp;amp;c=30" target=_blank&gt;Email List&lt;/A&gt;</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: Adding synamic SiteMapNode</title><link>http://forums.asp.net/thread/1387688.aspx</link><pubDate>Sat, 02 Sep 2006 01:19:21 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1387688</guid><dc:creator>MuteThis</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1387688.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=139&amp;PostID=1387688</wfw:commentRss><description>&lt;p&gt;Ok, here is something a little better.&amp;nbsp; I can&amp;#39;t say I&amp;#39;m happy with it either...&lt;/p&gt;&lt;p&gt;You need to wire up an event in Global.asax&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;void&lt;/span&gt; Application_Start(&lt;span class="kwd"&gt;object&lt;/span&gt; sender, EventArgs e) 
{
	&lt;span class="cmt"&gt;// Code that runs on application startup&lt;/span&gt;
	SiteMap.SiteMapResolve += (SiteMapHandler.SiteMap_SiteMapResolve);
}&lt;/pre&gt;&lt;p&gt;And now some code for your App_Code directory: SiteMapHandler.cs&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;using&lt;/span&gt; System;
&lt;span class="kwd"&gt;using&lt;/span&gt; System.Web;

&lt;span class="cmt"&gt;/// &amp;lt;summary&amp;gt;
/// Summary description for SiteMapHandler
/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;span class="kwd"&gt;public class&lt;/span&gt; SiteMapHandler
{
	&lt;span class="kwd"&gt;public static&lt;/span&gt; SiteMapNode SiteMap_SiteMapResolve(&lt;span class="kwd"&gt;object&lt;/span&gt; sender, SiteMapResolveEventArgs e)
	{
		SiteMapNode TempNode = &lt;span class="kwd"&gt;new&lt;/span&gt; SiteMapNode(SiteMap.Provider, &lt;span class="st"&gt;&amp;quot;Details.aspx&amp;quot;&lt;/span&gt;, &lt;span class="st"&gt;&amp;quot;~/Details.aspx&amp;quot;&lt;/span&gt;, &lt;span class="st"&gt;&amp;quot;Details&amp;quot;&lt;/span&gt;);

		&lt;span class="kwd"&gt;string&lt;/span&gt; Referrer = (e.Context.Request.UrlReferrer == &lt;span class="kwd"&gt;null&lt;/span&gt;) ? &lt;span class="kwd"&gt;null&lt;/span&gt; : e.Context.Request.UrlReferrer.AbsolutePath.ToLower();

		&lt;span class="kwd"&gt;if&lt;/span&gt; (&lt;span class="kwd"&gt;string&lt;/span&gt;.IsNullOrEmpty(Referrer) == &lt;span class="kwd"&gt;true&lt;/span&gt; ||
			e.Context.Request.Url.AbsolutePath.ToLower().EndsWith(&lt;span class="st"&gt;&amp;quot;/detail.aspx&amp;quot;&lt;/span&gt;) == &lt;span class="kwd"&gt;false&lt;/span&gt;)
		{
			&lt;span class="kwd"&gt;return null&lt;/span&gt;;
		}
		&lt;span class="kwd"&gt;else&lt;/span&gt;
		{
			TempNode.ParentNode = SiteMap.Provider.FindSiteMapNode(Referrer);
		}

		&lt;span class="kwd"&gt;return&lt;/span&gt; TempNode;
	}
}
&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Enjoy&lt;/p&gt;</description></item><item><title>Re: Adding synamic SiteMapNode</title><link>http://forums.asp.net/thread/1387677.aspx</link><pubDate>Sat, 02 Sep 2006 00:04:54 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1387677</guid><dc:creator>MuteThis</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1387677.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=139&amp;PostID=1387677</wfw:commentRss><description>&lt;p&gt;What I am about to suggest amounts to what some (myself included) would call a hack...&amp;nbsp; I&amp;#39;m sure there has to be a better way, but I haven&amp;#39;t really played with the built-in navigation stuff.&amp;nbsp; Here it goes..&lt;/p&gt;&lt;p&gt;My solution has three site map files.&amp;nbsp; One for default where the details page is not included &amp;quot;default&amp;quot;, a second where the details page is a child of products &amp;quot;FromProducts&amp;quot; and a third where the details page is a child of search &amp;quot;FromSearch&amp;quot;.&lt;/p&gt;&lt;p&gt;A little bit of configuration information needs to be added to the web.config file to take this approach.&lt;/p&gt;&lt;pre class="coloredcode"&gt;&amp;lt;&lt;span class="tag"&gt;siteMap&lt;/span&gt;&lt;span class="attr"&gt; defaultProvider=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;Default&amp;quot;&lt;/span&gt;&amp;gt;
	&amp;lt;&lt;span class="tag"&gt;providers&lt;/span&gt;&amp;gt;
		&amp;lt;&lt;span class="tag"&gt;add&lt;/span&gt; 
&lt;span class="attr"&gt;		  name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;Default&amp;quot;&lt;/span&gt;
&lt;span class="attr"&gt;		  type=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;System.Web.XmlSiteMapProvider&amp;quot;&lt;/span&gt; 
&lt;span class="attr"&gt;		  siteMapFile=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;~/Web.sitemap&amp;quot;&lt;/span&gt; /&amp;gt;
		&amp;lt;&lt;span class="tag"&gt;add&lt;/span&gt; 
&lt;span class="attr"&gt;		  name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;FromProduct&amp;quot;&lt;/span&gt;
&lt;span class="attr"&gt;		  type=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;System.Web.XmlSiteMapProvider&amp;quot;&lt;/span&gt; 
&lt;span class="attr"&gt;		  siteMapFile=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;~/FromProduct.sitemap&amp;quot;&lt;/span&gt; /&amp;gt;
		&amp;lt;&lt;span class="tag"&gt;add&lt;/span&gt; 
&lt;span class="attr"&gt;		  name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;FromSearch&amp;quot;&lt;/span&gt;
&lt;span class="attr"&gt;		  type=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;System.Web.XmlSiteMapProvider&amp;quot;&lt;/span&gt; 
&lt;span class="attr"&gt;		  siteMapFile=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;~/FromSearch.sitemap&amp;quot;&lt;/span&gt; /&amp;gt;
	&amp;lt;/&lt;span class="tag"&gt;providers&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class="tag"&gt;siteMap&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;And now the code to make it happen on the details page.&amp;nbsp; For brevities sake, I&amp;#39;m using this code inline, ideally you&amp;#39;d put it in a method.&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;protected void&lt;/span&gt; Page_Init(&lt;span class="kwd"&gt;object&lt;/span&gt; sender, EventArgs e)
{
	&lt;span class="kwd"&gt;string&lt;/span&gt; Referrer = (Request.UrlReferrer == &lt;span class="kwd"&gt;null&lt;/span&gt;) ? &lt;span class="kwd"&gt;null&lt;/span&gt; : Request.UrlReferrer.AbsolutePath.ToLower();

	&lt;span class="kwd"&gt;if&lt;/span&gt; (&lt;span class="kwd"&gt;string&lt;/span&gt;.IsNullOrEmpty(Referrer) == &lt;span class="kwd"&gt;true&lt;/span&gt;)
	{
		Response.Redirect(&lt;span class="st"&gt;&amp;quot;~/Default.aspx&amp;quot;&lt;/span&gt;);
	}
	&lt;span class="kwd"&gt;else if&lt;/span&gt; (Referrer.EndsWith(&lt;span class="st"&gt;&amp;quot;products.aspx&amp;quot;&lt;/span&gt;) == &lt;span class="kwd"&gt;true&lt;/span&gt;)
	{
		SiteMapPath1.SiteMapProvider = &lt;span class="st"&gt;&amp;quot;FromProduct&amp;quot;&lt;/span&gt;;
	}
	&lt;span class="kwd"&gt;else if&lt;/span&gt; (Referrer.EndsWith(&lt;span class="st"&gt;&amp;quot;search.aspx&amp;quot;&lt;/span&gt;) == &lt;span class="kwd"&gt;true&lt;/span&gt;)
	{
		SiteMapPath1.SiteMapProvider = &lt;span class="st"&gt;&amp;quot;FromSearch&amp;quot;&lt;/span&gt;;
	}
}&lt;/pre&gt;&lt;p&gt;That&amp;#39;s it...&lt;/p&gt;&lt;p&gt;&amp;nbsp;You are correct, this solution is less than ideal, but it was my first stab at a solution.&amp;nbsp; I&amp;#39;ll hack around at dynamically adding details to the SiteMapPath and post again if I have any luck.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Adding synamic SiteMapNode</title><link>http://forums.asp.net/thread/1387440.aspx</link><pubDate>Fri, 01 Sep 2006 18:59:29 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1387440</guid><dc:creator>ursasmar</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1387440.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=139&amp;PostID=1387440</wfw:commentRss><description>&lt;p&gt;In my app I have a &amp;quot;details.aspx&amp;quot; page that is used to display product information.&amp;nbsp; This page is called from a number of different pages, which are parts of different nodes in my sitemap.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;p&gt;rootNode&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; products&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; detail&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;  search&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  detail&lt;/p&gt;&lt;p&gt;closeNodes&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;What I would like to happen is that in my breadcrumb trail, it shows the &lt;/p&gt;&lt;p&gt;Home &amp;gt;&amp;gt; Products &amp;gt;&amp;gt; Details path &lt;/p&gt;&lt;p&gt;or the &lt;/p&gt;&lt;p&gt;Home &amp;gt;&amp;gt; Search &amp;gt;&amp;gt; Details path, &lt;/p&gt;&lt;p&gt;even though this details page is the same file.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;I have found that I can&amp;#39;t have the Details page listed twice in the sitemap.&amp;nbsp; And, I don&amp;#39;t want to maintain two Details files with different names, but identical code, just so that the sitemap will work.&amp;nbsp; So, is there a way to add a node dynamically when the Details page is called and assign its parent node the calling page?&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description></item></channel></rss>