Check/Select TreePanel nodes programatically through JavaScript

  1. #1

    Check/Select TreePanel nodes programatically through JavaScript

    Dears,

    I want to select/check a node from a TreePanel based on its ID value (Bound from database), and I use the following code:
    function LoadSelectedNode(MyID) {
        for (var i = 0; i<App.MyTreeID.getRootNode().childNodes.length; i++) {
            for (var j = 0; j<App.MyTreeID.getRootNode().childNodes[i].childNodes.length; j++) {
                if (App.MyTreeID.getRootNode().childNodes[i].childNodes[j].data.id == MyID) {
    				// I used this way
                    App.MyTreeID.getRootNode().childNodes[i].childNodes[j].cascade(function (childNode) {
                        childNode.set("checked", true);
                        childNode.set("selected", true);
                    });
    				// Also used this way
                    App.MyTreeID.getRootNode().childNodes[i].childNodes[j].set("checked", true );
                    App.MyTreeID.getRootNode().childNodes[i].childNodes[j].set("selected", true);
                    break;
    		    }
            }
        }
    }
    This code is working just fine, and I saw that the specified node by (MyID) is getting checked/Selected.
    But the problem occurs when I tried to read selected nodes from the server side (DirectMethod).
    It does not consider the selected/checked node by the above code as selected/checked.

    This is my server side (DirectMethod) code:
        <DirectMethod()> _
        Sub LoadSelectedNode()
            If Not MyTreeID.CheckedNodes Is Nothing Then
                For Each Node As Ext.Net.SubmittedNode In MyTreeID.CheckedNodes
                    ' Do What Ever With Node
                    Ext.Net.X.Msg.Alert("Alert", Node.NodeID)
                Next
            Else
                Ext.Net.X.Msg.Alert("Alert", "Please, select at least one node from the tree").Show()
            End If
        End Sub
    What's wrong Im doing?
    Please, help.

    Note:

    - If I selected the nodes using Mouse pointer, the server side code is working perfect.

    Regards,
    Alaswad
    Last edited by alawibh; Apr 14, 2013 at 9:22 AM.
  2. #2
    Hi @alawibh,

    Re: checking

    Please use a TreePanel's setChecked method.
    // cfg : (required)ids, (optional)value, (optional)keepExisting, (optional)silent
    setChecked : function (cfg)
    Re: selection

    Please use a selection model's select method.
    http://docs.sencha.com/ext-js/4-2/#!...-method-select
  3. #3
    Re: checking

    We created a feature ticket.
    https://github.com/extnet/Ext.NET/issues/208
  4. #4
    Thanks dear,

    Problem solved with setChecked function.

    Regards,
    Alaswad
  5. #5
    The ticket has been closed with the revision #5027. It will go to the upcoming v2.2 release.

    Now the setChecked method takes a nodes config.

    treePanel.setChecked({
        nodes: [ /* nodes */ ]
    })
    Also a TreePanel's setChecked and toggleChecked methods do the things in a bulk manner, i.e. update a hidden field with checked nodes just once.

    Thank you for the question.

Similar Threads

  1. Replies: 10
    Last Post: Apr 18, 2016, 6:26 AM
  2. [CLOSED] Check child nodes treepanel
    By Antonio09 in forum 2.x Legacy Premium Help
    Replies: 4
    Last Post: Jan 30, 2013, 12:29 AM
  3. Replies: 18
    Last Post: Jan 23, 2013, 3:20 PM
  4. [CLOSED] TreePanel Node Check Through Javascript
    By Patrick_G in forum 2.x Legacy Premium Help
    Replies: 2
    Last Post: Nov 15, 2012, 3:36 PM
  5. [CLOSED] Select TreeNode Programatically
    By Ben in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Feb 04, 2009, 9:45 AM

Posting Permissions