Hi,

Is it possible to maintain the tree state after refreshing it. In the followin code, I want that after refresh, the expanded nodes remain expanded, or expand again after reload in short, maintain the state after refresh.

<%@ Page Language="C#" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack &amp;&amp; !X.IsAjaxRequest)
        {
            this.BuildTree(TreePanel1.Root);
        }
    }

    private Ext.Net.TreeNodeCollection BuildTree(Ext.Net.TreeNodeCollection nodes)
    {
        if (nodes == null)
        {
            nodes = new Ext.Net.TreeNodeCollection();
        }
        
        Ext.Net.TreeNode root = new Ext.Net.TreeNode();
        root.Text = "Root";
        nodes.Add(root);

        string prefix = DateTime.Now.Second + "_";
        for (int i = 0; i < 10; i++)
        {
            Ext.Net.TreeNode node = new Ext.Net.TreeNode();
            node.Text = prefix + i;
            root.Nodes.Add(node);
            for (int j = 0; j < 10; j++) {
                Ext.Net.TreeNode node2 = new Ext.Net.TreeNode(prefix+j,prefix+j,Icon.Group);
                
                node2.Listeners.DblClick.Handler="Ext.Msg.alert('','"+node2.Text+"')";
                node.Nodes.Add(node2);    
            }
        }

        return nodes;
    }

    [DirectMethod]
    public string RefreshMenu()
    {
        Ext.Net.TreeNodeCollection nodes = this.BuildTree(null);

        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 id="Head2" runat="server">
    <title>SiteMap - Ext.NET Examples</title>
    <link href="../../../../resources/css/examples.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
        var refreshTree = function (tree) {
            Ext.net.DirectMethods.RefreshMenu({
                success: function (result) {
                    var nodes = eval(result);
                    tree.initChildren(nodes);
                }
            });
        }
    </script>
</head>
<body>
    <form id="Form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
        
        <ext:TreePanel 
            ID="TreePanel1" 
            runat="server" 
            Icon="Anchor" 
            Title="Tree"
            AutoScroll="true" 
            Width="250" 
             UseArrows="true"
              Lines="false"
            Collapsed="False" 
            CollapseFirst="True" 
            HideParent="False"
            RootVisible="False" 
            BodyStyle="padding-left:10px">
            <Tools>            
                <ext:Tool Type="Refresh" Qtip="Refresh" Handler="refreshTree(#{TreePanel1});" />
            </Tools>
         </ext:TreePanel>
    </form>
</body>
</html>