Microsoft Content Management Server - Sitemap provider

This is Interesting: Free IT Magazines  
Home > Archive > Microsoft Content Management Server > December 2005 > Sitemap provider





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Sitemap provider
Edward Wilde

2005-12-13, 7:54 am

Hi Stefan,

I'm having trouble getting your sitemap provider sample working
(http://blogs.technet.com/stefan_gos.../28/406918.aspx).
The first problem I ran into was with FindSiteMapNode(), the value of
rawUrl was the path to the template and not the posting path.

If think I fixed this by searching using the NRNODEGUID param if its
found in the URL, however the treeview only shows the root node
('Channels') and none of the other folders I have setup for my test
site.

Any ideas

Regards Ed.

Altered FindSiteMapNode()

public override SiteMapNode FindSiteMapNode(string rawUrl)
{
ChannelItem ci = null;
if (rawUrl.Contains("NRNODEGUID="))
{
string nodeGuid =
rawUrl.Substring(rawUrl.IndexOf("NRNODEGUID=") + 11, 42);
nodeGuid = HttpUtility.UrlDecode(nodeGuid);
ci =
(CmsHttpContext.Current.Searches.GetByGuid(nodeGuid) as
Posting).Parent;
}
else
{
ci = EnhancedGetByUrl(CmsHttpContext.Current, rawUrl);
}
return GetSiteMapNodeFromChannelItem(ci);
}

kiko

2005-12-13, 7:54 am

I ran into a similar problem like yours a few weeks ago. I changed it
slightly to return Posting.Url instead

"Edward Wilde" wrote:

> Hi Stefan,
>
> I'm having trouble getting your sitemap provider sample working
> (http://blogs.technet.com/stefan_gos.../28/406918.aspx).
> The first problem I ran into was with FindSiteMapNode(), the value of
> rawUrl was the path to the template and not the posting path.
>
> If think I fixed this by searching using the NRNODEGUID param if its
> found in the URL, however the treeview only shows the root node
> ('Channels') and none of the other folders I have setup for my test
> site.
>
> Any ideas
>
> Regards Ed.
>
> Altered FindSiteMapNode()
>
> public override SiteMapNode FindSiteMapNode(string rawUrl)
> {
> ChannelItem ci = null;
> if (rawUrl.Contains("NRNODEGUID="))
> {
> string nodeGuid =
> rawUrl.Substring(rawUrl.IndexOf("NRNODEGUID=") + 11, 42);
> nodeGuid = HttpUtility.UrlDecode(nodeGuid);
> ci =
> (CmsHttpContext.Current.Searches.GetByGuid(nodeGuid) as
> Posting).Parent;
> }
> else
> {
> ci = EnhancedGetByUrl(CmsHttpContext.Current, rawUrl);
> }
> return GetSiteMapNodeFromChannelItem(ci);
> }
>
>

Edward Wilde

2005-12-13, 7:54 am

Hi Kiko,

Thanks for the advise, I tried using the current posting.url, but still
only get the root node in the tree view control

Regards Ed.

kiko

2005-12-13, 7:54 am

Oh forgot to mention, I only got it to work with SitemapPath and Menu controls.

"Edward Wilde" wrote:

> Hi Kiko,
>
> Thanks for the advise, I tried using the current posting.url, but still
> only get the root node in the tree view control
>
> Regards Ed.
>
>

Edward Wilde

2005-12-13, 7:54 am

Hi Kiko,

This is exactly the problem I am having, it works with SiteMapPath and
Menu but not TreeView.

Ed.

Stefan [MSFT]

2005-12-13, 5:55 pm

Hi Edward,

I will look into this.
When I used this with the VS.NET 2005 / ASP.NET 2.0 prerelease and SP1a it
worked.
Let me see if something changed in the final version of VS.NET 2005 or SP2.

Cheers,
Stefan

--
This posting is provided "AS IS" with no warranties, and confers no rights

New to MCMS?
Check out this book: Building Websites Using MCMS: http://tinyurl.com/6zj44
Check out the new book as well: Advanced MCMS development:
http://tinyurl.com/8ugwj
----------------------


"Edward Wilde" <ewilde@gmail.com> wrote in message
news:1134475690.758383.156730@f14g2000cwb.googlegroups.com...
> Hi Kiko,
>
> This is exactly the problem I am having, it works with SiteMapPath and
> Menu but not TreeView.
>
> Ed.
>



Stefan [MSFT]

2005-12-13, 5:55 pm

Hi Edward,

I have been able to reproduce the problem.
Something - either in MCMS or in ASP.NET has changed since I developed the
Site Map Provider.
I will look into a solution for this problem.

Cheers,
Stefan

--
This posting is provided "AS IS" with no warranties, and confers no rights

New to MCMS?
Check out this book: Building Websites Using MCMS: http://tinyurl.com/6zj44
Check out the new book as well: Advanced MCMS development:
http://tinyurl.com/8ugwj
----------------------


"Stefan [MSFT]" <stefang@online.microsoft.com> wrote in message
news:OURXY8%23$FHA.2092@TK2MSFTNGP10.phx.gbl...
> Hi Edward,
>
> I will look into this.
> When I used this with the VS.NET 2005 / ASP.NET 2.0 prerelease and SP1a it
> worked.
> Let me see if something changed in the final version of VS.NET 2005 or
> SP2.
>
> Cheers,
> Stefan
>
> --
> This posting is provided "AS IS" with no warranties, and confers no rights
>
> New to MCMS?
> Check out this book: Building Websites Using MCMS:
> http://tinyurl.com/6zj44
> Check out the new book as well: Advanced MCMS development:
> http://tinyurl.com/8ugwj
> ----------------------
>
>
> "Edward Wilde" <ewilde@gmail.com> wrote in message
> news:1134475690.758383.156730@f14g2000cwb.googlegroups.com...
>
>



Edward Wilde

2005-12-13, 5:55 pm

Thanks Stephan,

Appreciate your help with this

Regards Ed.

Stefan [MSFT]

2005-12-13, 5:55 pm

Hi all,

on my box the tree view is now working correct.
Actually there are two different things:

1) FindSiteMapNode now passes in the GUID of the item and no longer the path
So this method needs to be replaced with the following:

public override SiteMapNode FindSiteMapNode(string Guid)
{
ChannelItem ci = CmsHttpContext.Current.Searches.GetByGuid(Guid)
as ChannelItem;
return GetSiteMapNodeFromChannelItem(ci);
}


2) It seems the tree view uses AJAX to do silent postbacks to the server.
Unfortunatelly AJAX now uses the URL in the URL line - which is the channel
path for the postback and not the correct address. So enable the tree view
it is required to enable the base tag coming from RobotMetaTags control.
Without this base tag the postback goes to a wrong location and fails.

After activating the base tage the tree view control works correct.

I understand that there are scenarios that the base tag cannot be used (e.g.
when the server is behind a publishing proxy server).
I will look into this issue and look for a solution for this.

Cheers,
Stefan

--
This posting is provided "AS IS" with no warranties, and confers no rights

New to MCMS?
Check out this book: Building Websites Using MCMS: http://tinyurl.com/6zj44
Check out the new book as well: Advanced MCMS development:
http://tinyurl.com/8ugwj
----------------------


"Stefan [MSFT]" <stefang@online.microsoft.com> wrote in message
news:uKSeK2AAGHA.2320@TK2MSFTNGP11.phx.gbl...
> Hi Edward,
>
> I have been able to reproduce the problem.
> Something - either in MCMS or in ASP.NET has changed since I developed the
> Site Map Provider.
> I will look into a solution for this problem.
>
> Cheers,
> Stefan
>
> --
> This posting is provided "AS IS" with no warranties, and confers no rights
>
> New to MCMS?
> Check out this book: Building Websites Using MCMS:
> http://tinyurl.com/6zj44
> Check out the new book as well: Advanced MCMS development:
> http://tinyurl.com/8ugwj
> ----------------------
>
>
> "Stefan [MSFT]" <stefang@online.microsoft.com> wrote in message
> news:OURXY8%23$FHA.2092@TK2MSFTNGP10.phx.gbl...
>
>



Edward Wilde

2005-12-14, 7:49 am

Hi Stefan,

FindSiteMapNode(), is passing in a URL for me, is the template URL e.g.

"/MCMSWebSite/templates/HomePage.aspx?NRMODE=Published&NRNODEGUID=%7b3C8457B6-8DA2-43F1-8F33-F9CAA166A440%7d&NRORIGINALURL=%2fMCMSWebSite&NRCACHEHINT=ModifyLoggedIn"

Not a GUID, I wonder whats different in our setups?

Also MSDN documentation for FindSiteMapNode() says it is a URL that
gets passed in either virtual or absolute
(http://msdn2.microsoft.com/en-us/library/72b370ha.aspx)

Regards Ed.

Stefan [MSFT]

2005-12-14, 7:49 am

Hi Edward,

that is strange. I received the GUID.

Cheers,
Stefan

--
This posting is provided "AS IS" with no warranties, and confers no rights

New to MCMS?
Check out this book: Building Websites Using MCMS: http://tinyurl.com/6zj44
Check out the new book as well: Advanced MCMS development:
http://tinyurl.com/8ugwj
----------------------


"Edward Wilde" <ewilde@gmail.com> wrote in message
news:1134556254.930306.203750@g47g2000cwa.googlegroups.com...
> Hi Stefan,
>
> FindSiteMapNode(), is passing in a URL for me, is the template URL e.g.
>
> "/MCMSWebSite/templates/HomePage.aspx?NRMODE=Published&NRNODEGUID=%7b3C8457B6-8DA2-43F1-8F33-F9CAA166A440%7d&NRORIGINALURL=%2fMCMSWebSite&NRCACHEHINT=ModifyLoggedIn"
>
> Not a GUID, I wonder whats different in our setups?
>
> Also MSDN documentation for FindSiteMapNode() says it is a URL that
> gets passed in either virtual or absolute
> (http://msdn2.microsoft.com/en-us/library/72b370ha.aspx)
>
> Regards Ed.
>



Stefan [MSFT]

2005-12-14, 5:54 pm

Hi Edward,

ok I finally found a solution to do this without the base tag.
It's pretty simple: you only need to add the following three lines behind
the </form> tag of your template or channel rendering script:

<script>
__CMS_PostbackForm.action = __CMS_CurrentUrl;
</script>

Alternativly you could create an HttpModule to do this automatically.
Btw: I still get GUIDs and no Urls although the documentation states
differently. Actually the value I get is the value of "key" of SiteMapNode.
And here I'm storing the GUID.

My .NET framework version is 2.0.50727.42 in case you would like to double
check.

Cheers,
Stefan

--
This posting is provided "AS IS" with no warranties, and confers no rights

New to MCMS?
Check out this book: Building Websites Using MCMS: http://tinyurl.com/6zj44
Check out the new book as well: Advanced MCMS development:
http://tinyurl.com/8ugwj
----------------------


"Stefan [MSFT]" <stefang@online.microsoft.com> wrote in message
news:erl0FWKAGHA.2708@TK2MSFTNGP12.phx.gbl...
> Hi Edward,
>
> that is strange. I received the GUID.
>
> Cheers,
> Stefan
>
> --
> This posting is provided "AS IS" with no warranties, and confers no rights
>
> New to MCMS?
> Check out this book: Building Websites Using MCMS:
> http://tinyurl.com/6zj44
> Check out the new book as well: Advanced MCMS development:
> http://tinyurl.com/8ugwj
> ----------------------
>
>
> "Edward Wilde" <ewilde@gmail.com> wrote in message
> news:1134556254.930306.203750@g47g2000cwa.googlegroups.com...
>
>



Edward Wilde

2005-12-14, 5:54 pm

Hi Stefan,

I'm using the same version of the framework.

However I think I found the problem, the SiteMapPath (bread crumb
control) class calls FindSiteMapNode() using the URL of the template
and Menu and TreeView call it passing in the value of "key" of
SiteMapNode i.e. the GUID.

So the following FindSiteMapNode() now works:

public override SiteMapNode FindSiteMapNode(string rawUrl)
{
ChannelItem ci = null;
if (rawUrl.StartsWith("{") && rawUrl.EndsWith("}"))
{
ci = CmsHttpContext.Current.Searches.GetByGuid(rawUrl)
as ChannelItem;
}
else
{
if (rawUrl.Contains("NRNODEGUID="))
{
string nodeGuid =
rawUrl.Substring(rawUrl.IndexOf("NRNODEGUID=") + 11, 42);
nodeGuid = HttpUtility.UrlDecode(nodeGuid);
ci =
(CmsHttpContext.Current.Searches.GetByGuid(nodeGuid) as Posting);
}
}
return GetSiteMapNodeFromChannelItem(ci);
}

Strange that the navigation controls call that method passing in
different values

Regards Ed.

Stefan [MSFT]

2005-12-14, 5:54 pm

Hi Edward,

this indeed sounds more like a bug than a feature!
Thanks for providing this update!

I will update my article on the SiteMapProvider and upload the latest
version on GotDotNet as soon as possible.

I'm also working on a HttpModule implementation that automatically injects
the javascript into the code.
This will most likely be a HttpModule that corrects all ASP.NET 2.0
glitches - including postbacks and theme problems.

Cheers,
Stefan

--
This posting is provided "AS IS" with no warranties, and confers no rights

New to MCMS?
Check out this book: Building Websites Using MCMS: http://tinyurl.com/6zj44
Check out the new book as well: Advanced MCMS development:
http://tinyurl.com/8ugwj
----------------------


"Edward Wilde" <ewilde@gmail.com> wrote in message
news:1134577774.884030.234390@g14g2000cwa.googlegroups.com...
> Hi Stefan,
>
> I'm using the same version of the framework.
>
> However I think I found the problem, the SiteMapPath (bread crumb
> control) class calls FindSiteMapNode() using the URL of the template
> and Menu and TreeView call it passing in the value of "key" of
> SiteMapNode i.e. the GUID.
>
> So the following FindSiteMapNode() now works:
>
> public override SiteMapNode FindSiteMapNode(string rawUrl)
> {
> ChannelItem ci = null;
> if (rawUrl.StartsWith("{") && rawUrl.EndsWith("}"))
> {
> ci = CmsHttpContext.Current.Searches.GetByGuid(rawUrl)
> as ChannelItem;
> }
> else
> {
> if (rawUrl.Contains("NRNODEGUID="))
> {
> string nodeGuid =
> rawUrl.Substring(rawUrl.IndexOf("NRNODEGUID=") + 11, 42);
> nodeGuid = HttpUtility.UrlDecode(nodeGuid);
> ci =
> (CmsHttpContext.Current.Searches.GetByGuid(nodeGuid) as Posting);
> }
> }
> return GetSiteMapNodeFromChannelItem(ci);
> }
>
> Strange that the navigation controls call that method passing in
> different values
>
> Regards Ed.
>



Stefan [MSFT]

2005-12-14, 5:54 pm

Hi Edward,

I just double checked: when using the SiteMapPath control I also get GUIDs -
and not URL.

Could you please double check if there is a specific action required to get
a URL here?
I haven't been able to reproduce this.

Cheers,
Stefan

--
This posting is provided "AS IS" with no warranties, and confers no rights

New to MCMS?
Check out this book: Building Websites Using MCMS: http://tinyurl.com/6zj44
Check out the new book as well: Advanced MCMS development:
http://tinyurl.com/8ugwj
----------------------


"Edward Wilde" <ewilde@gmail.com> wrote in message
news:1134577774.884030.234390@g14g2000cwa.googlegroups.com...
> Hi Stefan,
>
> I'm using the same version of the framework.
>
> However I think I found the problem, the SiteMapPath (bread crumb
> control) class calls FindSiteMapNode() using the URL of the template
> and Menu and TreeView call it passing in the value of "key" of
> SiteMapNode i.e. the GUID.
>
> So the following FindSiteMapNode() now works:
>
> public override SiteMapNode FindSiteMapNode(string rawUrl)
> {
> ChannelItem ci = null;
> if (rawUrl.StartsWith("{") && rawUrl.EndsWith("}"))
> {
> ci = CmsHttpContext.Current.Searches.GetByGuid(rawUrl)
> as ChannelItem;
> }
> else
> {
> if (rawUrl.Contains("NRNODEGUID="))
> {
> string nodeGuid =
> rawUrl.Substring(rawUrl.IndexOf("NRNODEGUID=") + 11, 42);
> nodeGuid = HttpUtility.UrlDecode(nodeGuid);
> ci =
> (CmsHttpContext.Current.Searches.GetByGuid(nodeGuid) as Posting);
> }
> }
> return GetSiteMapNodeFromChannelItem(ci);
> }
>
> Strange that the navigation controls call that method passing in
> different values
>
> Regards Ed.
>



Edward Wilde

2005-12-14, 5:54 pm

Hi Stefan,

I've done some futher debugging and it seems all the controls call the
FindSiteMapNode() passing a URL see call stacks below:
I've tried this on a very simple template that has a menu, treeview and
sitemappath all bound to the custom site mapprovider. Only the Treeview
calls FindSiteMapNode passing the GUIDs


Menu:
MCMSWeb.DLL!MCMSWeb.SiteMapProviders.CustomerSiteMapProvider.FindSiteMapNode(string
rawUrl =
"/MCMSWebSite/templates/Finance.aspx?NRMODE=Published&NRNODEGUID=%7b501719FA-866F-4830-B958-9CBEA099FD51%7d& NRORIGINALURL=%2fMCMSWebSite%2fHuman%2bR
esources%2f&NRCACHEHINT=ModifyLoggedIn")
Line 33 C#

System.Web.dll!System.Web.SiteMapProvider.FindSiteMapNode(System.Web.HttpContext
context = {System.Web.HttpContext}) + 0x2a bytes
System.Web.dll!System.Web.SiteMapProvider.CurrentNode.get() + 0x21
bytes

System.Web.dll!System.Web.UI.WebControls.Menu.DataBindItem(System.Web.UI.WebControls.MenuItem
item = {System.Web.UI.WebControls.MenuItem}) + 0xf4 bytes
System.Web.dll!System.Web.UI.WebControls.Menu.PerformDataBinding() +
0x76 bytes

System.Web.dll!System.Web.UI.WebControls.HierarchicalDataBoundControl.PerformSelect()
+ 0x53 bytes

System.Web.dll!System.Web.UI.WebControls.BaseDataBoundControl.DataBind()
+ 0x47 bytes
System.Web.dll!System.Web.UI.WebControls.Menu.DataBind() + 0x5 bytes

System.Web.dll!System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()
+ 0x53 bytes
System.Web.dll!System.Web.UI.WebControls.Menu.EnsureDataBound() +
0x1e bytes

System.Web.dll!System.Web.UI.WebControls.Menu.OnPreRender(System.EventArgs
e = {System.EventArgs}, bool registerScript = true) + 0x16 bytes

System.Web.dll!System.Web.UI.WebControls.Menu.OnPreRender(System.EventArgs
e) + 0x17 bytes
System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
0x4e bytes
System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
0xa2 bytes
System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
0xa2 bytes
System.Web.dll!System.Web.UI.Page.ProcessRequestMain(bool
includeStagesBeforeAsyncPoint = true, bool includeStagesAfterAsyncPoint
= true) + 0x551 bytes
System.Web.dll!System.Web.UI.Page.ProcessRequest(bool
includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint =
true) + 0x4d bytes
System.Web.dll!System.Web.UI.Page.ProcessRequest() + 0x57 bytes

System.Web.dll!System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext
context) + 0x13 bytes

System.Web.dll!System.Web.UI.Page.ProcessRequest(System.Web.HttpContext
context) + 0x32 bytes

App_Web_qhkqouwu.dll!ASP.templates_finance_aspx.ProcessRequest(System.Web.HttpContext
context = {System.Web.HttpContext}) + 0x1e bytes C#

SiteMapPath:

> MCMSWeb.DLL!MCMSWeb.SiteMapProviders.CustomerSiteMapProvider.FindSiteMapNode(string rawUrl = "/MCMSWebSite/templates/Finance.aspx?NRMODE=Published&NRNODEGUID=%7b501719FA-866F-4830-B958-9CBEA099FD51%7d& NRORIGINALURL=%2fMCMSWebSite%2fHuman%2bR
esources%2f&

NRCACHEHINT=ModifyLoggedIn") Line 33 C#

System.Web.dll!System.Web.SiteMapProvider.FindSiteMapNode(System.Web.HttpContext
context = {System.Web.HttpContext}) + 0x2a bytes
System.Web.dll!System.Web.SiteMapProvider.CurrentNode.get() + 0x21
bytes

System.Web.dll!System.Web.SiteMapProvider.GetCurrentNodeAndHintAncestorNodes(int
upLevel) + 0xf bytes

System.Web.dll!System.Web.UI.WebControls.SiteMapPath.CreateControlHierarchy()
+ 0x36 bytes

System.Web.dll!System.Web.UI.WebControls.SiteMapPath.CreateChildControls()
+ 0x1e bytes
System.Web.dll!System.Web.UI.Control.EnsureChildControls() + 0x58
bytes
System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
0x2a bytes
System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
0xa2 bytes
System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
0xa2 bytes
System.Web.dll!System.Web.UI.Page.ProcessRequestMain(bool
includeStagesBeforeAsyncPoint = true, bool includeStagesAfterAsyncPoint
= true) + 0x551 bytes
System.Web.dll!System.Web.UI.Page.ProcessRequest(bool
includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint =
true) + 0x4d bytes
System.Web.dll!System.Web.UI.Page.ProcessRequest() + 0x57 bytes

System.Web.dll!System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext
context) + 0x13 bytes

System.Web.dll!System.Web.UI.Page.ProcessRequest(System.Web.HttpContext
context) + 0x32 bytes

Treeview:
> MCMSWeb.DLL!MCMSWeb.SiteMapProviders.CustomerSiteMapProvider.FindSiteMapNode(string rawUrl = "/MCMSWebSite/templates/Finance.aspx?NRMODE=Published&NRNODEGUID=%7b501719FA-866F-4830-B958-9CBEA099FD51%7d& NRORIGINALURL=%2fMCMSWebSite%2fHuman%2bR
esources%2f&

NRCACHEHINT=ModifyLoggedIn") Line 33 C#

System.Web.dll!System.Web.SiteMapProvider.FindSiteMapNode(System.Web.HttpContext
context = {System.Web.HttpContext}) + 0x2a bytes
System.Web.dll!System.Web.SiteMapProvider.CurrentNode.get() + 0x21
bytes

System.Web.dll!System.Web.UI.WebControls.TreeView.DataBindNode(System.Web.UI.WebControls.TreeNode
node = {System.Web.UI.WebControls.TreeNode}) + 0x11a bytes

System.Web.dll!System.Web.UI.WebControls.TreeView.PerformDataBinding()
+ 0x132 bytes

System.Web.dll!System.Web.UI.WebControls.HierarchicalDataBoundControl.PerformSelect()
+ 0x53 bytes

System.Web.dll!System.Web.UI.WebControls.BaseDataBoundControl.DataBind()
+ 0x47 bytes
System.Web.dll!System.Web.UI.WebControls.TreeView.DataBind() + 0x5
bytes

System.Web.dll!System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()
+ 0x53 bytes

System.Web.dll!System.Web.UI.WebControls.TreeView.OnPreRender(System.EventArgs
e = {System.EventArgs}) + 0x2c bytes
System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
0x4e bytes
System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
0xa2 bytes
System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
0xa2 bytes
System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
0xa2 bytes
System.Web.dll!System.Web.UI.Page.ProcessRequestMain(bool
includeStagesBeforeAsyncPoint = true, bool includeStagesAfterAsyncPoint
= true) + 0x551 bytes
System.Web.dll!System.Web.UI.Page.ProcessRequest(bool
includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint =
true) + 0x4d bytes
System.Web.dll!System.Web.UI.Page.ProcessRequest() + 0x57 bytes

System.Web.dll!System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext
context) + 0x13 bytes

System.Web.dll!System.Web.UI.Page.ProcessRequest(System.Web.HttpContext
context) + 0x32 bytes

Regards Ed.

Stefan [MSFT]

2005-12-15, 2:50 am

Hi Edward,

I have verified the following controls and on my system all call the
provider with the GUID:

- TreeView
- Menu
- SiteMapPath

Please open a support call to get this analyzed in more detail.

Cheers,
Stefan

--
This posting is provided "AS IS" with no warranties, and confers no rights

New to MCMS?
Check out this book: Building Websites Using MCMS: http://tinyurl.com/6zj44
Check out the new book as well: Advanced MCMS development:
http://tinyurl.com/8ugwj
----------------------


"Edward Wilde" <ewilde@gmail.com> wrote in message
news:1134584024.973553.284290@g14g2000cwa.googlegroups.com...
> Hi Stefan,
>
> I've done some futher debugging and it seems all the controls call the
> FindSiteMapNode() passing a URL see call stacks below:
> I've tried this on a very simple template that has a menu, treeview and
> sitemappath all bound to the custom site mapprovider. Only the Treeview
> calls FindSiteMapNode passing the GUIDs
>
>
> Menu:
> MCMSWeb.DLL!MCMSWeb.SiteMapProviders.CustomerSiteMapProvider.FindSiteMapNode(string
> rawUrl =
> "/MCMSWebSite/templates/Finance.aspx?NRMODE=Published&NRNODEGUID=%7b501719FA-866F-4830-B958-9CBEA099FD51%7d& NRORIGINALURL=%2fMCMSWebSite%2fHuman%2bR
esources%2f&NRCACHEHINT=ModifyLoggedIn")
> Line 33 C#
>
> System.Web.dll!System.Web.SiteMapProvider.FindSiteMapNode(System.Web.HttpContext
> context = {System.Web.HttpContext}) + 0x2a bytes
> System.Web.dll!System.Web.SiteMapProvider.CurrentNode.get() + 0x21
> bytes
>
> System.Web.dll!System.Web.UI.WebControls.Menu.DataBindItem(System.Web.UI.WebControls.MenuItem
> item = {System.Web.UI.WebControls.MenuItem}) + 0xf4 bytes
> System.Web.dll!System.Web.UI.WebControls.Menu.PerformDataBinding() +
> 0x76 bytes
>
> System.Web.dll!System.Web.UI.WebControls.HierarchicalDataBoundControl.PerformSelect()
> + 0x53 bytes
>
> System.Web.dll!System.Web.UI.WebControls.BaseDataBoundControl.DataBind()
> + 0x47 bytes
> System.Web.dll!System.Web.UI.WebControls.Menu.DataBind() + 0x5 bytes
>
> System.Web.dll!System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()
> + 0x53 bytes
> System.Web.dll!System.Web.UI.WebControls.Menu.EnsureDataBound() +
> 0x1e bytes
>
> System.Web.dll!System.Web.UI.WebControls.Menu.OnPreRender(System.EventArgs
> e = {System.EventArgs}, bool registerScript = true) + 0x16 bytes
>
> System.Web.dll!System.Web.UI.WebControls.Menu.OnPreRender(System.EventArgs
> e) + 0x17 bytes
> System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
> 0x4e bytes
> System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
> 0xa2 bytes
> System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
> 0xa2 bytes
> System.Web.dll!System.Web.UI.Page.ProcessRequestMain(bool
> includeStagesBeforeAsyncPoint = true, bool includeStagesAfterAsyncPoint
> = true) + 0x551 bytes
> System.Web.dll!System.Web.UI.Page.ProcessRequest(bool
> includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint =
> true) + 0x4d bytes
> System.Web.dll!System.Web.UI.Page.ProcessRequest() + 0x57 bytes
>
> System.Web.dll!System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext
> context) + 0x13 bytes
>
> System.Web.dll!System.Web.UI.Page.ProcessRequest(System.Web.HttpContext
> context) + 0x32 bytes
>
> App_Web_qhkqouwu.dll!ASP.templates_finance_aspx.ProcessRequest(System.Web.HttpContext
> context = {System.Web.HttpContext}) + 0x1e bytes C#
>
> SiteMapPath:
>
>
> System.Web.dll!System.Web.SiteMapProvider.FindSiteMapNode(System.Web.HttpContext
> context = {System.Web.HttpContext}) + 0x2a bytes
> System.Web.dll!System.Web.SiteMapProvider.CurrentNode.get() + 0x21
> bytes
>
> System.Web.dll!System.Web.SiteMapProvider.GetCurrentNodeAndHintAncestorNodes(int
> upLevel) + 0xf bytes
>
> System.Web.dll!System.Web.UI.WebControls.SiteMapPath.CreateControlHierarchy()
> + 0x36 bytes
>
> System.Web.dll!System.Web.UI.WebControls.SiteMapPath.CreateChildControls()
> + 0x1e bytes
> System.Web.dll!System.Web.UI.Control.EnsureChildControls() + 0x58
> bytes
> System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
> 0x2a bytes
> System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
> 0xa2 bytes
> System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
> 0xa2 bytes
> System.Web.dll!System.Web.UI.Page.ProcessRequestMain(bool
> includeStagesBeforeAsyncPoint = true, bool includeStagesAfterAsyncPoint
> = true) + 0x551 bytes
> System.Web.dll!System.Web.UI.Page.ProcessRequest(bool
> includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint =
> true) + 0x4d bytes
> System.Web.dll!System.Web.UI.Page.ProcessRequest() + 0x57 bytes
>
> System.Web.dll!System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext
> context) + 0x13 bytes
>
> System.Web.dll!System.Web.UI.Page.ProcessRequest(System.Web.HttpContext
> context) + 0x32 bytes
>
> Treeview:
>
> System.Web.dll!System.Web.SiteMapProvider.FindSiteMapNode(System.Web.HttpContext
> context = {System.Web.HttpContext}) + 0x2a bytes
> System.Web.dll!System.Web.SiteMapProvider.CurrentNode.get() + 0x21
> bytes
>
> System.Web.dll!System.Web.UI.WebControls.TreeView.DataBindNode(System.Web.UI.WebControls.TreeNode
> node = {System.Web.UI.WebControls.TreeNode}) + 0x11a bytes
>
> System.Web.dll!System.Web.UI.WebControls.TreeView.PerformDataBinding()
> + 0x132 bytes
>
> System.Web.dll!System.Web.UI.WebControls.HierarchicalDataBoundControl.PerformSelect()
> + 0x53 bytes
>
> System.Web.dll!System.Web.UI.WebControls.BaseDataBoundControl.DataBind()
> + 0x47 bytes
> System.Web.dll!System.Web.UI.WebControls.TreeView.DataBind() + 0x5
> bytes
>
> System.Web.dll!System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()
> + 0x53 bytes
>
> System.Web.dll!System.Web.UI.WebControls.TreeView.OnPreRender(System.EventArgs
> e = {System.EventArgs}) + 0x2c bytes
> System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
> 0x4e bytes
> System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
> 0xa2 bytes
> System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
> 0xa2 bytes
> System.Web.dll!System.Web.UI.Control.PreRenderRecursiveInternal() +
> 0xa2 bytes
> System.Web.dll!System.Web.UI.Page.ProcessRequestMain(bool
> includeStagesBeforeAsyncPoint = true, bool includeStagesAfterAsyncPoint
> = true) + 0x551 bytes
> System.Web.dll!System.Web.UI.Page.ProcessRequest(bool
> includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint =
> true) + 0x4d bytes
> System.Web.dll!System.Web.UI.Page.ProcessRequest() + 0x57 bytes
>
> System.Web.dll!System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext
> context) + 0x13 bytes
>
> System.Web.dll!System.Web.UI.Page.ProcessRequest(System.Web.HttpContext
> context) + 0x32 bytes
>
> Regards Ed.
>



Stefan [MSFT]

2005-12-15, 5:58 pm

Hi Edward,

the first part of the new article with the corrected code is up now:
http://blogs.technet.com/stefan_gos...ion_Part_1.aspx

The next article will outline how to get the TreeView control working with
templates and channel rendering scripts and I will also look if it is
possible to disable the "navigation away from the site" message in authoring
mode for the AJAX postbacks when expanding a node.

Cheers,
Stefan

--
This posting is provided "AS IS" with no warranties, and confers no rights

New to MCMS?
Check out this book: Building Websites Using MCMS: http://tinyurl.com/6zj44
Check out the new book as well: Advanced MCMS development:
http://tinyurl.com/8ugwj
----------------------


"Stefan [MSFT]" <stefang@online.microsoft.com> wrote in message
news:OAZGDRVAGHA.272@TK2MSFTNGP09.phx.gbl...
> Hi Edward,
>
> I have verified the following controls and on my system all call the
> provider with the GUID:
>
> - TreeView
> - Menu
> - SiteMapPath
>
> Please open a support call to get this analyzed in more detail.
>
> Cheers,
> Stefan
>
> --
> This posting is provided "AS IS" with no warranties, and confers no rights
>
> New to MCMS?
> Check out this book: Building Websites Using MCMS:
> http://tinyurl.com/6zj44
> Check out the new book as well: Advanced MCMS development:
> http://tinyurl.com/8ugwj
> ----------------------
>
>
> "Edward Wilde" <ewilde@gmail.com> wrote in message
> news:1134584024.973553.284290@g14g2000cwa.googlegroups.com...
>
>



Clinton

2005-12-17, 2:48 am

Indeed there are more bugs in this product than features ..... I hope next
version is written by sane ppls

"Stefan [MSFT]" wrote:

> Hi Edward,
>
> this indeed sounds more like a bug than a feature!
> Thanks for providing this update!
>
> I will update my article on the SiteMapProvider and upload the latest
> version on GotDotNet as soon as possible.
>
> I'm also working on a HttpModule implementation that automatically injects
> the javascript into the code.
> This will most likely be a HttpModule that corrects all ASP.NET 2.0
> glitches - including postbacks and theme problems.
>
> Cheers,
> Stefan
>
> --
> This posting is provided "AS IS" with no warranties, and confers no rights
>
> New to MCMS?
> Check out this book: Building Websites Using MCMS: http://tinyurl.com/6zj44
> Check out the new book as well: Advanced MCMS development:
> http://tinyurl.com/8ugwj
> ----------------------
>
>
> "Edward Wilde" <ewilde@gmail.com> wrote in message
> news:1134577774.884030.234390@g14g2000cwa.googlegroups.com...
>
>
>

Stefan [MSFT]

2005-12-19, 2:49 am

Hi Clinton,

the problems below are not caused by bugs - but due to the fact that MCMS
rewrites URLs.
ASP.NET is not aware of this - so implementing an ASP.NET site map provider
for MCMS and using the ASP.NET 2.0 navigation controls requires some
additional work.

Btw: this is the 4th post from you I have seen and all your posts contain
offense wording.

It would be nice if you would use a more businesslike wording.

Thanks,
Stefan

--
This posting is provided "AS IS" with no warranties, and confers no rights

New to MCMS?
Check out this book: Building Websites Using MCMS: http://tinyurl.com/6zj44
Check out the new book as well: Advanced MCMS development:
http://tinyurl.com/8ugwj
----------------------


"Clinton" <Clinton@discussions.microsoft.com> wrote in message
news:E74E2B2A-21E1-488D-A20B-1000AD7102E8@microsoft.com...[vbcol=seagreen]
> Indeed there are more bugs in this product than features ..... I hope next
> version is written by sane ppls
>
> "Stefan [MSFT]" wrote:
>


Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com