很多时候会看到,使用Treeview的时候展开这个节点,到另外一个页面的时候Treeview的状态又恢复了,下面就是解决方法咯 新建一个类 public class TreeViewState ...{ public void SaveTreeView(TreeView treeView, string key) ...{ List<bool?> list = new List<bool?>(); SaveTreeViewExpandedState(treeView.Nodes, list); HttpContext.Current.Session[key + treeView.ID] = list; } private void SaveTreeViewExpandedState(TreeNodeCollection nodes, List<bool?> list) ...{ foreach (TreeNode node in nodes) ...{ list.Add(node.Expanded); if (node.ChildNodes.Count > 0) ...{ SaveTreeViewExpandedState(node.ChildNodes, list); } } } private int RestoreTreeViewIndex; public void RestoreTreeView(TreeView treeView, string key) ...{ RestoreTreeViewIndex = 0; RestoreTreeViewExpandedState(treeView.Nodes, (List<bool?>)HttpContext.Current.Session[key + treeView.ID] ?? new List<bool?>()); } private void RestoreTreeViewExpandedState(TreeNodeCollection nodes, List<bool?> list) ...{ foreach (TreeNode node in nodes) ...{ if (RestoreTreeViewIndex >= list.Count) return; node.Expanded = list[RestoreTreeViewIndex++]; if (node.ChildNodes.Count > 0) ...{ RestoreTreeViewExpandedState(node.ChildNodes, list); } } } } 在页面代码,TreeView的控件里事件里写 protected void TreeViewMain_Unload(object sender, EventArgs e) ...{ // save the state of all nodes. new TreeViewState().SaveTreeView(TreeViewMain, this.GetType().ToString()); } 转载于:https://www.cnblogs.com/javabin/archive/2009/10/14/1583003.html
很多时候会看到,使用Treeview的时候展开这个节点,到另外一个页面的时候Treeview的状态又恢复了,下面就是解决方法咯
新建一个类
在页面代码,TreeView的控件里事件里写