I still haven't resolved this issue but I've narrowed it down to one
area of code. I turned on tracing and found that when my menu control
class gets to the HierarchicalDataSourceView view = base.GetData("");
line of the following code
protected override void PerformDataBinding()
{
HttpContext.Current.Trace.Write("menu.cs",
"PerformDataBinding()");
SiteMapDataSource dataSource = null;
HierarchicalDataSourceView view = base.GetData("");
HttpContext.Current.Trace.Write("menu.cs",
"HierarchicalDataSourceView view");
// if there's no data source don't bind
if (!base.IsBoundUsingDataSourceID && (this.DataSource ==
null))
return;
it calls the Initialize() method of my SqlSiteMapProvider and the
navigation menu is updated. After this occurs it will not call my
SqlSiteMapProvider again unless I resave a file in my project.
Why is it only calling it once? I like this caching effect only when
the user is logged in. How can I control when this SiteSiteMapProvider
is called?
Thanks,
Happy Friday,
Robert