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());
}
查看全文
相关阅读:
开发者使用JasperReport——通过数据源生成报表
《编程导论(Java)》电子参考文献索引
QT信号的自定义
uCOS3空闲任务
php函数nl2br的反函数br2nl
PHPstorm相关设置以及快捷键
phpstorm 左边的文件列表没用了 怎么弄出来
nl2br()与nl2p()函数,php在字符串中的新行(\n)之前插入换行符
DNS配置&HTTP 规格严格
GC与幽灵引用 规格严格
原文地址:https://www.cnblogs.com/javabin/p/1583003.html
最新文章
Asynchronous Control Flow with Promises
deck.js
Geventsocketio documentation — geventsocketio 0.3.1 documentation
nowjs for Node Directly call remote functions in Javascript
Ringo
Node.js
gmic2012 斯凯网络的MM是亮点啊
Use jQuery The jQuery CrossDomain Ajax Guide
虚拟研讨会:Node.js生态系统之框架、库、最佳实践
Installing Node.js via package manager · joyent/node Wiki
热门文章
MetaWeblog API on Nodejs
解决nodejs socket.io is not allowed by AccessControlAllowOrigin 跨域问题 CNode
在Express和Socket.IO中使用session
JavaScript事件串连执行多个处理过程的方法
SVN 中trunk、tags、branches使用
中语言超酷特性 之 多维泛指
Winsock异步编程步骤
Ubuntu麒麟宣传过度出格的证据
POCO C++库学习和分析 平台与环境
开发者使用JasperReport——带参数查询数据库
Copyright © 2011-2022 走看看
很多时候会看到,使用Treeview的时候展开这个节点,到另外一个页面的时候Treeview的状态又恢复了,下面就是解决方法咯
新建一个类
在页面代码,TreeView的控件里事件里写