我的母版页中有一个树视图。加载内容页面时,我想保存树视图状态(哪些节点折叠/展开)。我将节点存储在 ArrayList 中。代码:
private void SaveTreeviewState(TreeNodeCollection nodes)
{
foreach (TreeNode t in nodes)
{
// Store expandable state in ArrayList (true or false)
//NodePaths.Add(t.Expanded);
NodePaths.Add(t);
// Check for childnods
if (t.ChildNodes.Count > 0)
// recall this method
SaveTreeviewState(t.ChildNodes);
}
}
该方法由 treeview 对象的 unload 事件调用:
protected void tvManual_Unload(object sender, EventArgs e)
{
SaveTreeviewState(tvManual.Nodes);
// Clear session
Session["Treeview"] = null;
// Add arraylistm to session
Session["Treeview"] = NodePaths;
}
在母版页的加载事件中,我检查是否设置了我的会话。设置会话后,我调用读取会话的方法。
会话中的 arraylist 包含我所有的节点,所以这是正确的。但是,所有节点都将属性 expended 设置为 false。这是不正确的,因为我扩展了多个节点。
希望你们能理解我的问题并能帮助我。
先进的Thnx