2007-04-05 Igor Zelmanovich <igorz@mainsoft.com>
authorIgor Zelmanovich <igorz@mono-cvs.ximian.com>
Thu, 5 Apr 2007 13:47:14 +0000 (13:47 -0000)
committerIgor Zelmanovich <igorz@mono-cvs.ximian.com>
Thu, 5 Apr 2007 13:47:14 +0000 (13:47 -0000)
* Menu.cs: resolve selected MenuItem if bounded with SiteMapeDataSource.

svn path=/trunk/mcs/; revision=75439

mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/System.Web.UI.WebControls/Menu.cs

index c437123723e70388182976f49c12d28a61e21a64..212d34bff68b17fb9b8c1eb88217256959fcb245 100644 (file)
@@ -1,3 +1,7 @@
+2007-04-05 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * Menu.cs: resolve selected MenuItem if bounded with SiteMapeDataSource.
+
 2007-04-05  Marek Habersack  <mhabersack@novell.com>
 
        * BaseDataBoundControl.cs: restore the LAMESPEC note and code it
index b92145f96e209db6efd6df432e3e3749e990561b..09f18ad49271f08370ddddfb8ee65f5b41535c23 100644 (file)
@@ -71,8 +71,8 @@ namespace System.Web.UI.WebControls
                Hashtable bindings;
 
                Hashtable _menuItemControls;
-               bool _requiresChildControlsDataBinding;
-
+               bool _requiresChildControlsDataBinding;\r
+               SiteMapNode _currSiteMapNode;
                int registeredStylesCounter = -1;
                List<Style> levelSelectedLinkStyles;
                List<Style> levelMenuItemLinkStyles;
@@ -864,7 +864,16 @@ namespace System.Web.UI.WebControls
                                IHierarchyData hdata = hEnumerable.GetHierarchyData (obj);
                                MenuItem item = new MenuItem ();
                                itemCollection.Add (item);
-                               item.Bind (hdata);
+                               item.Bind (hdata);\r
+\r
+                               SiteMapNode siteMapNode = hdata as SiteMapNode;\r
+                               if (siteMapNode != null) {\r
+                                       if (_currSiteMapNode == null)\r
+                                               _currSiteMapNode = siteMapNode.Provider.CurrentNode;\r
+                                       if (siteMapNode == _currSiteMapNode)\r
+                                               item.Selected = true;\r
+                               }\r
+                               
                                OnMenuItemDataBound (new MenuEventArgs (item));
 
                                if (hdata == null || !hdata.HasChildren)