i have a problem with a session and i cant figure it out on my ownso i hope someone can help me. ok,here's the problem: i have a TreeViewState.cs that saves the state of the treeview and expands the nodes and a collapse code, they work fine with except one thing, the state is saved with the node expanded after the node is visited, but in the same time if i go to another node the collapse code goes into action and collapses the previous node. the problem is that when i want to revisit a previous node it wont expand because it's saved expanded, and not collapses as it should be. how can i modify the SaveState class so it will "update" the state of the nodes, or the collapse code.they stay on a master page and the treeview is generated via db, no xml file or SitemapDataSource exist.Other info: the nodes have a url property, and the the redirect is made by a server.transfer code. any help would be great. THX
collapse code:Code:public class TreeViewState { public static bool IsTreeViewStateSaved(TreeView LinksTreeView, string key) { bool isSaved = (HttpContext.Current.Session[key + LinksTreeView.ID] != null); return isSaved; } public static void SaveTreeView(TreeView LinksTreeView, string key) { HttpContext.Current.Session[key + LinksTreeView.ID] = LinksTreeView.Nodes; } public static void RestoreTreeView(TreeView LinksTreeView, string key) { if (IsTreeViewStateSaved(LinksTreeView, key)) { LinksTreeView.Nodes.Clear(); TreeNodeCollection nodes = (TreeNodeCollection)HttpContext.Current.Session[key + LinksTreeView.ID]; for (int index = nodes.Count - 1; index >= 0; index += -1) { LinksTreeView.Nodes.AddAt(0, nodes[index]); } HttpContext.Current.Session[key + LinksTreeView.ID] = null; } } }
Code:protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e) { if (e.Node.Parent == null) return; string strNodeValue = e.Node.Value;foreach (TreeNode node in e.Node.Parent.ChildNodes) { if (node.Value != strNodeValue) { node.Collapse(); HttpContext.Current.Session.Clear(); } } }


so i hope someone can help me. ok,here's the problem: i have a TreeViewState.cs that saves the state of the treeview and expands the nodes and a collapse code, they work fine with except one thing, the state is saved with the node expanded after the node is visited, but in the same time if i go to another node the collapse code goes into action and collapses the previous node. the problem is that when i want to revisit a previous node it wont expand because it's saved expanded, and not collapses as it should be. how can i modify the SaveState class so it will "update" the state of the nodes, or the collapse code.they stay on a master page and the treeview is generated via db, no xml file or SitemapDataSource exist.Other info: the nodes have a url property, and the the redirect is made by a server.transfer code. any help would be great. THX
Reply With Quote