[CLOSED] Unselect child nodes of an AsyncTreeNode in javascript

  1. #1

    [CLOSED] Unselect child nodes of an AsyncTreeNode in javascript

    Hello,

    Any idea what am I doing wrong?


     <ext:TreePanel ID="tree" runat="server" Title="Req Classes" Border="false" Width="340"
                                        AutoScroll="true" UseArrows="true" ContainterScroll="true" Selectable="true">
                                        <Root>
                                            <ext:AsyncTreeNode NodeID="0" Text="Root" Expanded="true"/>
                                        </Root>
                                        <Listeners>
                                            <BeforeLoad Fn="nodeLoad" />
                                            <CheckChange Fn="chkChange" />
                             
                                        </Listeners>
    </ext:TreePanel>
    
    
    <ext:XScript ID="XScript1" runat="server">
        <script type="text/javascript" language="javascript">
    
    
            function chkChange(node, checked) {
    
              
                if (!checked) {
                   
                    uncheckChildren(node)
                
                }
    
            }
    
            function uncheckChildren(node) {
                //node.unselect();
                var i = 0;
    
                if (node.childNodes.length > 0) {
                    while (i <= node.childNodes.length - 1) {
                        
                        node.childNodes[i].unselect();
                        i++;
                    }
    
                }
          
            }
    
     </script>
    </ext:XScript>
    It looks like .unselect() method does not work as expected!?



    thanks.
    Last edited by Daniil; Nov 25, 2010 at 7:08 AM. Reason: [CLOSED]
  2. #2
    Hi,

    Could you provide a full code?

    Just I was unable to reproduce the issue using the code you posted.

    Example
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
    
        [DirectMethod]
        public static string NodeLoad(string nodeID)
        {
            Ext.Net.TreeNodeCollection nodes = new Ext.Net.TreeNodeCollection();
    
            if (!string.IsNullOrEmpty(nodeID))
            {
                for (int i = 1; i < 6; i++)
                {
                    AsyncTreeNode asyncNode = new AsyncTreeNode();
                    asyncNode.Text = nodeID + i;
                    asyncNode.NodeID = nodeID + i;
                    asyncNode.Checked = ThreeStateBool.True;
                    nodes.Add(asyncNode);
                }
    
                for (int i = 6; i < 11; i++)
                {
                    Ext.Net.TreeNode treeNode = new Ext.Net.TreeNode();
                    treeNode.Text = nodeID + i;
                    treeNode.NodeID = nodeID + i;
                    treeNode.Leaf = true;
                    treeNode.Checked = ThreeStateBool.True;
                    nodes.Add(treeNode);
                }
            }
    
            return nodes.ToJson();
        }
    </script>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Ext.NET Example</title>   
    
        <script type="text/javascript">
            var nodeLoad = function nodeLoad(node) {
                Ext.net.DirectMethods.NodeLoad(node.id, {
                    success : function(result) {
                        var data = eval("(" + result + ")");
                        node.loadNodes(data);
                    },
    
                    failure : function(errorMsg) {
                        Ext.Msg.alert('Failure', errorMsg);
                    }
                });
            }
    
            var chkChange = function(node, checked) {
                if (!checked) {
                    uncheckChildren(node)
                }
            }
    
            var uncheckChildren = function(node) {
                node.unselect();
                var i = 0;
    
                if (node.childNodes.length > 0) {
                    while (i <= node.childNodes.length - 1) {
    
                        node.childNodes[i].unselect();
                        i++;
                    }
                }
            }
        </script>
    
    </head>
    <body>
        <form runat="server">
        <ext:ResourceManager runat="server" />
        <ext:TreePanel 
            ID="TreePanel1" 
            runat="server" 
            Title="Tree" 
            AutoHeight="true" 
            Border="false"
            Selectable="true">
            <Root>
                <ext:AsyncTreeNode 
                    NodeID="0" 
                    Text="Root" 
                    Expanded="true" 
                    Checked="True" />
            </Root>
            <Listeners>
                <BeforeLoad Fn="nodeLoad" />
                <CheckChange Fn="chkChange" />
            </Listeners>
            <SelectionModel>
                <ext:MultiSelectionModel />
            </SelectionModel>
        </ext:TreePanel>
        </form>
    </body>
    </html>
  3. #3
    To uncheck a node please use the TreeNodeUI's toggleCheck() method.

    Example
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
    
        [DirectMethod]
        public static string NodeLoad(string nodeID)
        {
            Ext.Net.TreeNodeCollection nodes = new Ext.Net.TreeNodeCollection();
    
            if (!string.IsNullOrEmpty(nodeID))
            {
                for (int i = 1; i < 6; i++)
                {
                    AsyncTreeNode asyncNode = new AsyncTreeNode();
                    asyncNode.Text = nodeID + i;
                    asyncNode.NodeID = nodeID + i;
                    asyncNode.Checked = ThreeStateBool.True;
                    nodes.Add(asyncNode);
                }
    
                for (int i = 6; i < 11; i++)
                {
                    Ext.Net.TreeNode treeNode = new Ext.Net.TreeNode();
                    treeNode.Text = nodeID + i;
                    treeNode.NodeID = nodeID + i;
                    treeNode.Leaf = true;
                    treeNode.Checked = ThreeStateBool.True;
                    nodes.Add(treeNode);
                }
            }
    
            return nodes.ToJson();
        }
    </script>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Ext.NET Example</title>   
    
        <script type="text/javascript">
            var nodeLoad = function nodeLoad(node) {
                Ext.net.DirectMethods.NodeLoad(node.id, {
                    success : function(result) {
                        var data = eval("(" + result + ")");
                        node.loadNodes(data);
                    },
    
                    failure : function(errorMsg) {
                        Ext.Msg.alert('Failure', errorMsg);
                    }
                });
            }
    
            var checkChangeHandler = function(node, checked) {
                if (!checked) {
                    uncheckChildren(node)
                }
            }
    
            var uncheckChildren = function(node) {
                node.eachChild(function(child) {
                    child.ui.toggleCheck(false);
                })
            }
        </script>
    
    </head>
    <body>
        <form runat="server">
        <ext:ResourceManager runat="server" />
        <ext:TreePanel 
            ID="TreePanel1" 
            runat="server" 
            Title="Tree" 
            AutoHeight="true">
            <Root>
                <ext:AsyncTreeNode 
                    NodeID="0" 
                    Text="Root" 
                    Expanded="true" 
                    Checked="True" />
            </Root>
            <Listeners>
                <BeforeLoad Fn="nodeLoad" />
                <CheckChange Fn="checkChangeHandler" />
            </Listeners>
        </ext:TreePanel>
        </form>
    </body>
    </html>
    See also
    http://dev.sencha.com/deploy/dev/doc...mber=eachChild

Similar Threads

  1. Tree Grid - Doesn't show child nodes be default.
    By Sagar2529 in forum 1.x Help
    Replies: 3
    Last Post: Feb 25, 2011, 9:13 AM
  2. Blocking load child nodes with dbclick of treegrid row
    By Thiago Nogueira in forum 1.x Help
    Replies: 1
    Last Post: Nov 29, 2010, 12:42 PM
  3. [CLOSED] Execute javascript from Masterpage child
    By tjbishop in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Aug 11, 2010, 8:32 AM
  4. How to expand all child nodes for current node?
    By dbassett74 in forum 1.x Help
    Replies: 2
    Last Post: May 26, 2009, 2:53 PM
  5. How do I clear out a child nodes from a TreeNode?
    By dbassett74 in forum 1.x Help
    Replies: 3
    Last Post: May 26, 2009, 1:39 PM

Tags for this Thread

Posting Permissions