Dec 07, 2009, 6:44 PM
[CLOSED] Maintaining Tree State after Refresh
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.
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 && !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>