fixed: populating nodes.
authorIgor Zelmanovich <igorz@mono-cvs.ximian.com>
Thu, 7 Sep 2006 14:52:01 +0000 (14:52 -0000)
committerIgor Zelmanovich <igorz@mono-cvs.ximian.com>
Thu, 7 Sep 2006 14:52:01 +0000 (14:52 -0000)
svn path=/trunk/mcs/; revision=65065

mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/System.Web.UI.WebControls/TreeView.cs
mcs/class/System.Web/System.Web.UI.WebControls/TreeView.js

index 9cc146b2781eb539242561139526330499ef11d4..89265acb48167a8dd7cd9cbaba64a88909c556df 100644 (file)
@@ -1,3 +1,8 @@
+2006-09-07 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * TreeView.cs: fixed: populating nodes.
+       * TreeView.js   
+
 2006-09-07 Igor Zelmanovich <igorz@mainsoft.com>
 
        * TreeNode.cs: fixed: ToggleExpandState.
index fbadae603b452a5dadef851d43f1e2b1743baf89..ef82b1d75bf79db59678585144333a745eea84b6 100644 (file)
@@ -848,6 +848,7 @@ namespace System.Web.UI.WebControls
                        StringWriter sw = new StringWriter ();
                        HtmlTextWriter writer = new HtmlTextWriter (sw);
                        
+                       node.Expanded = true;
                        int num = node.ChildNodes.Count;
                        for (int n=0; n<num; n++)
                                RenderNode (writer, node.ChildNodes [n], node.Depth + 1, levelLines, true, n<num-1);
@@ -1124,7 +1125,7 @@ namespace System.Web.UI.WebControls
                        bool renderChildNodes = node.Expanded.HasValue && node.Expanded.Value;
                        
                        if (clientExpand && !renderChildNodes)
-                               renderChildNodes = (!PopulateNodesFromClient || HasChildInputData (node));
+                               renderChildNodes = (!node.PopulateOnDemand || node.Populated);
                                
                        bool hasChildNodes;
                        
@@ -1193,7 +1194,7 @@ namespace System.Web.UI.WebControls
                                        writer.RenderBeginTag (HtmlTextWriterTag.Td);   // TD
                                        
                                        if (buttonImage) {
-                                               if (!clientExpand)
+                                               if (!clientExpand || (!PopulateNodesFromClient && node.PopulateOnDemand && !node.Populated))
                                                        writer.AddAttribute ("href", GetClientEvent (node, "ec"));
                                                else
                                                        writer.AddAttribute ("href", GetClientExpandEvent(node));
@@ -1373,19 +1374,6 @@ namespace System.Web.UI.WebControls
                                writer.RenderBeginTag (HtmlTextWriterTag.Span);
                }
                
-               bool HasChildInputData (TreeNode node)
-               {
-                       // Returns true if this node contain childs whose state is hold in
-                       // input elements that are rendered together with the node.
-                       
-                       if (node.Checked) return true;
-                       if (!node.HasChildData) return false;
-
-                       foreach (TreeNode n in node.ChildNodes)
-                               if (HasChildInputData (n)) return true;
-                       return false;
-               }
-               
                string GetNodeImageToolTip (bool expand, string txt) {
                        if (expand)  {
                                if (ExpandImageToolTip != "")
@@ -1512,7 +1500,8 @@ namespace System.Web.UI.WebControls
                        foreach (string id in states) {
                                if (id == null || id == "") continue;
                                TreeNode node = FindNodeByPos (id);
-                               node.Expanded = true;
+                               if (node != null)
+                                       node.Expanded = true;
                        }
                }
                
index 96c63dab71c171c2a6e0a5d27df42dd346a82677..98fc8f734d66d7561fc613def7f203c1ef10dfa9 100644 (file)
@@ -54,13 +54,13 @@ function TreeView_PopulateCallback (data, ids)
        node.populated = true;
        if (data != "*") {
                node.innerHTML = data;
-               TreeView_ToggleExpand (idArray[0], idArray[1]);
        } else {
                if (tree.showImage && tree.noExpandImage != null) {
                        var image = document.getElementById (spanId + "_img");
                        image.src = tree.noExpandImage;
                }
        }
+       TreeView_ToggleExpand (idArray[0], idArray[1]);
 }
 
 function TreeView_ErrorCallback (data, ids)