zoukankan      html  css  js  c++  java
  • TreeView状态保存

    很多时候会看到,使用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());
        }
  • 相关阅读:
    basis 文档
    profile default1
    profile default
    2101244
    Linux下对lvm逻辑卷分区大小的调整(针对xfs和ext4不同文件系统)
    1816647
    lvm管理:扩展lv、删除pv、lv等
    HPUX and AIX SSH 互信
    SLD Related Gateway Serivces Unavaliable
    [原创]K8 MSF Bind Shell TCP 连接工具
  • 原文地址:https://www.cnblogs.com/javabin/p/1583003.html
Copyright © 2011-2022 走看看