Author: adar
Date: 2007-01-18 03:30:31 -0500 (Thu, 18 Jan 2007)
New Revision: 71239

Modified:
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs
Log:
2007-01-18  Adar Wesley <[EMAIL PROTECTED]>

        * SiteMapDataSource.cs: implemented logic of GetStartNode when
        StartingNodeOffset is positive.



Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2007-01-18 04:17:22 UTC (rev 71238)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2007-01-18 08:30:31 UTC (rev 71239)
@@ -1,3 +1,8 @@
+2007-01-18  Adar Wesley <[EMAIL PROTECTED]>
+
+        * SiteMapDataSource.cs: implemented logic of GetStartNode when
+        StartingNodeOffset is positive.
+
 2007-01-17  Konstantin Triger <[EMAIL PROTECTED]>
 
        * BaseValidator.cs: ToString the validating property value or

Modified: 
trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs   
2007-01-18 04:17:22 UTC (rev 71238)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs   
2007-01-18 08:30:31 UTC (rev 71239)
@@ -35,6 +35,7 @@
 using System.Web.UI;
 using System.Web.Util;
 using System.ComponentModel;
+using System.Collections.Generic;
 
 namespace System.Web.UI.WebControls
 {
@@ -206,6 +207,18 @@
                                }
                        }
                        else if (StartingNodeOffset > 0) {
+                               List<SiteMapNode> pathCurrentToStartingNode = 
new List<SiteMapNode> ();
+                               SiteMapNode tmpNode = Provider.CurrentNode;
+                               while (tmpNode != null && tmpNode != 
starting_node) {
+                                       pathCurrentToStartingNode.Insert (0, 
tmpNode);
+                                       tmpNode = tmpNode.ParentNode;
+                               }
+                               if (tmpNode == starting_node &&
+                                       StartingNodeOffset <= 
pathCurrentToStartingNode.Count) {
+                                       // The requested node is in the same 
subtree as the starting_node
+                                       // try to advance on this path.
+                                       starting_node = 
pathCurrentToStartingNode [StartingNodeOffset - 1];
+                               }
                        }
 
                        return starting_node;
@@ -225,3 +238,4 @@
 
 #endif
 
+

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to