Author: mhabersack
Date: 2007-04-05 04:14:15 -0400 (Thu, 05 Apr 2007)
New Revision: 75419
Modified:
trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs
Log:
2007-04-05 Marek Habersack <[EMAIL PROTECTED]>
* SiteMapDataSource.cs: fix GetStartNode for situations when the
current URL is not defined in the sitemap file. Fixes bug
#81314. Patch from Mike Morano <[EMAIL PROTECTED]>.
Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
2007-04-05 08:14:02 UTC (rev 75418)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
2007-04-05 08:14:15 UTC (rev 75419)
@@ -1,3 +1,9 @@
+2007-04-05 Marek Habersack <[EMAIL PROTECTED]>
+
+ * SiteMapDataSource.cs: fix GetStartNode for situations when the
+ current URL is not defined in the sitemap file. Fixes bug
+ #81314. Patch from Mike Morano <[EMAIL PROTECTED]>.
+
2007-04-03 Marek Habersack <[EMAIL PROTECTED]>
* BaseDataBoundControl.cs: adjust for lame specs on MSDN.
Modified:
trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs
2007-04-05 08:14:02 UTC (rev 75418)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs
2007-04-05 08:14:15 UTC (rev 75419)
@@ -182,22 +182,22 @@
if (viewPath != null && viewPath.Length != 0) {
string url = MapUrl (StartingNodeUrl);
return Provider.FindSiteMapNode (url);
- }
- else if (StartFromCurrentNode) {
+ } else if (StartFromCurrentNode) {
if (StartingNodeUrl.Length != 0)
throw new InvalidOperationException
("StartingNodeUrl can't be set if StartFromCurrentNode is set to true.");
starting_node = Provider.CurrentNode;
- }
- else if (StartingNodeUrl.Length != 0) {
+ } else if (StartingNodeUrl.Length != 0) {
string url = MapUrl (StartingNodeUrl);
SiteMapNode node = Provider.FindSiteMapNode
(url);
if (node == null) throw new ArgumentException
("Can't find a site map node for the url: " + StartingNodeUrl);
starting_node = node;
- }
- else
+ } else
starting_node = Provider.RootNode;
+ if (starting_node == null)
+ return Provider.RootNode;
+
int i;
if (StartingNodeOffset < 0) {
for (i = StartingNodeOffset; i < 0; i ++) {
@@ -205,8 +205,7 @@
break;
starting_node =
starting_node.ParentNode;
}
- }
- else if (StartingNodeOffset > 0) {
+ } else if (StartingNodeOffset > 0) {
List<SiteMapNode> pathCurrentToStartingNode =
new List<SiteMapNode> ();
SiteMapNode tmpNode = Provider.CurrentNode;
while (tmpNode != null && tmpNode !=
starting_node) {
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches