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
最新文章
list vector map set (转)
深度优先遍历(DFS)(转)
广度优先遍历(BFS )(转)
pycharm使用方法
mybatis错误——java.io.IOException: Could not find resource com/xxx/xxxMapper.xml
Quartz源码——Quartz调度器的Misfire处理规则(四)
Quartz源码——QuartzSchedulerThread.run() 源码分析(三)
Quartz源码——scheduler.start()启动源码分析(二)
Quartz源码——JobStore保存JonDetail和Trigger源码分析(一)
Redisson分布式锁的简单使用
热门文章
Redis——windows环境安装redis和redis sentinel部署
AES加密解密——AES在JavaWeb项目中前台JS加密,后台Java解密的使用
IDEA- idea代码调试debug
SpringMVC——使用RequestDispatcher.include()和HttpServletResponseWrapper动态获取jsp输出内容
ASP.NET Boilerplate Zero启动方式
Ajax 文件上传
动易CMS之标签管理
数据库分页
使用HttpDownLoadHelper下载文件
C#生成随机验证码
Copyright © 2011-2022 走看看
很多时候会看到,使用Treeview的时候展开这个节点,到另外一个页面的时候Treeview的状态又恢复了,下面就是解决方法咯
新建一个类
在页面代码,TreeView的控件里事件里写