My treepanel is the following :


<ext:TreePanel ID="TreePanel1" runat="server" UseArrows="true" AutoScroll="true"
    Animate="true" EnableDD="true" ContainerScroll="true" RootVisible="false" Height="300"
    Collapsible="true" Collapsed="false">
    <TopBar>
        <ext:Toolbar ID="Toolbar2" runat="server">
            <Items>
                <ext:ToolbarFill ID="ToolbarFill12" runat="server" />
                <ext:ToolbarTextItem ID="ToolbarTextItem2" runat="server" Text="فیلتر:" />
                <ext:TriggerField ID="TriggerField2" runat="server" EnableKeyEvents="true">
                    <Triggers>
                        <ext:FieldTrigger Icon="Clear" />
                    </Triggers>
                    <Listeners>
                        <KeyUp Fn="filterTree" Buffer="250" />
                        <TriggerClick Handler="clearFilter();" />
                    </Listeners>
                </ext:TriggerField>
            </Items>
        </ext:Toolbar>
    </TopBar>
    <Listeners>
        <ContextMenu Fn="showMenu" StopEvent="true" />
    </Listeners>
    <Root>
    ......
    </Root>
</ext:TreePanel>
I wanna get all TreePanels' nodes and check or uncheck some of them.
How can I get all nodes in the Root ?

I've used the following code but TreePanel1.Root is always empty.

public void Chec(List<int> permissionIds)
{
    TreeNodeCollection rootNodes = TreePanel1.Root;//this is empty
    List<string> stringPermissionIds = permissionIds.Select(q => q.ToString()).ToList();
    foreach (TreeNodeBase node in rootNodes)
    {
                
        string nodeId = node.NodeID.Remove(0, 1).Trim();
        if (stringPermissionIds.Any(q => q == nodeId))
            node.Checked = ThreeStateBool.True;
        else node.Checked = ThreeStateBool.False;
    }
}