У меня есть вид дерева на моей главной странице. Когда страница контента загружена, я хочу сохранить состояние древовидной структуры (какие узлы свернуты / развернуты). Я храню узлы в 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);
}
}
Этот метод вызывается событием unload объекта treeview:
protected void tvManual_Unload(object sender, EventArgs e)
{
SaveTreeviewState(tvManual.Nodes);
// Clear session
Session["Treeview"] = null;
// Add arraylistm to session
Session["Treeview"] = NodePaths;
}
В событии загрузки главной страницы я проверяю, установлен ли мой сеанс. Когда сессия установлена, я вызываю метод, который читает сессию.
Массив в сеансе содержит все мои узлы, так что это правильно. Тем не менее, все узлы имеют израсходованное свойство равным false. Это не правильно, потому что я расширил узлы mupliple.
Надеюсь, вы, ребята, понимаете мою проблему и можете мне помочь.
Спасибо за продвинутый