[CLOSED] Check and uncheck all checkboxes treepanel

  1. #1

    [CLOSED] Check and uncheck all checkboxes treepanel

    Hi,

    What is the easiest way to check or uncheck alle checkboxes in a treepanel (with multiple children)

    I was looking for some of method like collapseAll or expandAll, but I couldn't find a checkAll method :)

    Martin
    Last edited by Daniil; Aug 10, 2010 at 3:19 PM.
  2. #2
    Hello, CarWise!

    It needs to implement this feature manually.

    Example
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <!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">
            if (document.getElementsByClassName) {
                getElementsByClass = function(classList, node) {
                    return (node || document).getElementsByClassName(classList)
                }
    
            } else {
                getElementsByClass = function(classList, node) {
                    var node = node || document,
                list = node.getElementsByTagName('*'),
                length = list.length,
                classArray = classList.split(/\s+/),
                classes = classArray.length,
                result = [], i, j
                    for (i = 0; i < length; i++) {
                        for (j = 0; j < classes; j++) {
                            if (list[i].className.search('\\b' + classArray[j] + '\\b') != -1) {
                                result.push(list[i])
                                break
                            }
                        }
                    }
                    return result
                }
            }
    
            var checkAll =
                function(tp) {
                    var f = function() {
                        if (Ext.isDefined(this.attributes.checked)) {
                            this.attributes.checked = "true";
                            getElementsByClass('x-tree-node-cb', this.ui.getEl())[0].checked = true;
                        }
                    };
                    tp.root.cascade(f);
                }
    
            var uncheckAll =
                function(tp) {
                    var f = function() {
                        if (Ext.isDefined(this.attributes.checked)) {
                            this.attributes.checked = "false";
                            getElementsByClass('x-tree-node-cb', this.ui.getEl())[0].checked = false;
                        }
                    };
                    tp.root.cascade(f);
                }
        </script>
    
    </head>
    <body>
        <form runat="server">
        <ext:ResourceManager runat="server" />
        <ext:TreePanel ID="TreePanel1" runat="server" Height="300">
            <Root>
                <ext:TreeNode Text="Composers" Expanded="true" Checked="False">
                    <Nodes>
                        <ext:TreeNode Text="Beethoven" Expanded="true" Checked="False">
                            <Nodes>
                                <ext:TreeNode Text="Concertos" Expanded="true" Checked="False">
                                    <Nodes>
                                        <ext:TreeNode Text="Concert 1" Checked="False" />
                                        <ext:TreeNode Text="Concert 2" Checked="False" />
                                    </Nodes>
                                </ext:TreeNode>
                            </Nodes>
                        </ext:TreeNode>
                    </Nodes>
                </ext:TreeNode>
            </Root>
            <Buttons>
                <ext:Button runat="server" Text="Check all">
                    <Listeners>
                        <Click Handler="checkAll(#{TreePanel1});" />
                    </Listeners>
                </ext:Button>
                <ext:Button runat="server" Text="Uncheck all">
                    <Listeners>
                        <Click Handler="uncheckAll(#{TreePanel1});" />
                    </Listeners>
                </ext:Button>
            </Buttons>
        </ext:TreePanel>
        </form>
    </body>
    </html>
  3. #3
    Mmmmm...feature request :confused:

    I think it would be a nice addition to the treepanel object

    But thanks !!! I can use your code !

    Martin
  4. #4
    The solution can be much simplified if you use browsers which have document.getElementsByClassName function (FF, for example). But it wouldn't work in browsers which don't have this function (such as IE).
  5. #5
    Hi,

    Ench node can be checked/unchecked through own ui class
    node.ui.toggleCheck();
    Please see the following sample
    <%@ Page Language="C#" %>
     
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <!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">
            
        </script>
     
    </head>
    <body>
        <form runat="server">
        <ext:ResourceManager runat="server" />
        <ext:TreePanel ID="TreePanel1" runat="server" Height="300">
            <Root>
                <ext:TreeNode Text="Composers" Expanded="true" Checked="False">
                    <Nodes>
                        <ext:TreeNode Text="Beethoven" Expanded="true" Checked="False">
                            <Nodes>
                                <ext:TreeNode Text="Concertos" Expanded="true" Checked="False">
                                    <Nodes>
                                        <ext:TreeNode Text="Concert 1" Checked="False" />
                                        <ext:TreeNode Text="Concert 2" Checked="False" />
                                    </Nodes>
                                </ext:TreeNode>
                            </Nodes>
                        </ext:TreeNode>
                    </Nodes>
                </ext:TreeNode>
            </Root>
            <Buttons>
                <ext:Button runat="server" Text="Check all">
                    <Listeners>
                        <Click Handler="#{TreePanel1}.getRootNode().cascade(function(n){n.ui.toggleCheck(true);});" />
                    </Listeners>
                </ext:Button>
                <ext:Button runat="server" Text="Uncheck all">
                    <Listeners>
                        <Click Handler="#{TreePanel1}.getRootNode().cascade(function(n){n.ui.toggleCheck(false);});" />
                    </Listeners>
                </ext:Button>
            </Buttons>
        </ext:TreePanel>
        </form>
    </body>
    </html>

Similar Threads

  1. [CLOSED] Check Uncheck Radio using javascript
    By nhg_itd in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Sep 21, 2011, 10:45 AM
  2. [CLOSED] How To Check or UnCheck Checkbox of treepanel from server side
    By legaldiscovery in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Jun 27, 2011, 1:01 PM
  3. Replies: 3
    Last Post: Dec 15, 2010, 12:55 PM
  4. Very simple question TreePanel check or uncheck all
    By apocalipse9 in forum 1.x Help
    Replies: 0
    Last Post: Jun 17, 2010, 12:36 AM
  5. [CLOSED] Check/Uncheck a treenode
    By macap in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Apr 06, 2010, 9:12 AM

Posting Permissions