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());
        }
  • 相关阅读:
    文档管理项目
    根据商品名称、价格区间检索商品的SQL语句
    ASP.NET MVC进阶三
    ASP.NET MVC进阶二
    vscode编写html,常用快捷方式与插件
    bpexpdate – 更改映像目录库中备份的截止日期以及介质目录库中介质的截止日期nbu
    Netbackup用于技术支持的问题报告(报障模版)
    netbackup 8.1安装注意事项
    金融的本质是什么?终于有人讲清楚了!(源于网络)
    nbu集群Alwayson相关问题
  • 原文地址:https://www.cnblogs.com/javabin/p/1583003.html
Copyright © 2011-2022 走看看