Author: lluis
Date: 2005-03-16 06:35:49 -0500 (Wed, 16 Mar 2005)
New Revision: 41888

Modified:
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/TreeNode.cs
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/TreeView.cs
Log:
2005-03-16  Lluis Sanchez Gual  <[EMAIL PROTECTED]>

        * TreeNode.cs, TreeView.cs: Don't raise the SelectedNodeChanged
          event when loading the view state. Fixes #73746.



Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2005-03-16 11:28:12 UTC (rev 41887)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2005-03-16 11:35:49 UTC (rev 41888)
@@ -1,3 +1,8 @@
+2005-03-16  Lluis Sanchez Gual  <[EMAIL PROTECTED]>
+
+       * TreeNode.cs, TreeView.cs: Don't raise the SelectedNodeChanged
+         event when loading the view state. Fixes #73746.
+
 2005-03-16  Lluis Sanchez Gual <[EMAIL PROTECTED]>
 
        * ListControl.cs: Load selected indices in the right place. Fixes 
#73745.

Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/TreeNode.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/TreeNode.cs    
2005-03-16 11:28:12 UTC (rev 41887)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/TreeNode.cs    
2005-03-16 11:35:49 UTC (rev 41888)
@@ -118,9 +118,9 @@
                        set {
                                if (SelectedFlag) {
                                        if (value != null)
-                                               value.SetSelectedNode (this);
+                                               value.SetSelectedNode (this, 
false);
                                        else if (tree != null)
-                                               tree.SetSelectedNode (null);
+                                               tree.SetSelectedNode (null, 
false);
                                }
                                tree = value;
                                if (nodes != null)
@@ -433,9 +433,9 @@
                        set {
                                if (tree != null) {
                                        if (!value && tree.SelectedNode == this)
-                                               tree.SetSelectedNode (null);
+                                               tree.SetSelectedNode (null, 
false);
                                        else if (value)
-                                               tree.SetSelectedNode (this);
+                                               tree.SetSelectedNode (this, 
false);
                                }
                                else
                                        SelectedFlag = value;
@@ -574,7 +574,7 @@
                        ViewState.LoadViewState (states [0]);
                        
                        if (tree != null && SelectedFlag)
-                               tree.SetSelectedNode (this);
+                               tree.SetSelectedNode (this, true);
                        
                        if (!PopulateOnDemand || Populated)
                                ((IStateManager)ChildNodes).LoadViewState 
(states [1]);

Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/TreeView.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/TreeView.cs    
2005-03-16 11:28:12 UTC (rev 41887)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/TreeView.cs    
2005-03-16 11:35:49 UTC (rev 41888)
@@ -654,14 +654,15 @@
                        get { return HtmlTextWriterTag.Div; }
                }
                
-               internal void SetSelectedNode (TreeNode node)
+               internal void SetSelectedNode (TreeNode node, bool loading)
                {
                        if (selectedNode == node) return;
                        if (selectedNode != null)
                                selectedNode.SelectedFlag = false;
                        selectedNode = node;
                        selectedNode.SelectedFlag = true;
-                       OnSelectedNodeChanged (new TreeNodeEventArgs 
(selectedNode));
+                       if (!loading)
+                               OnSelectedNodeChanged (new TreeNodeEventArgs 
(selectedNode));
                }
                
                internal void NotifyCheckChanged (TreeNode node)

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

Reply via email to