|
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]
|
|
| 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);
}
| |
|
| 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.
| |
|
| 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:
>
|
|
|
|
|