0
我的主頁上有一個treeview。當一個contentpage被加載時,我想保存treeview狀態(哪些節點被摺疊/展開)。我將節點存儲在一個ArrayList中。代碼:C#Treeview狀態展開
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事件稱爲:
protected void tvManual_Unload(object sender, EventArgs e)
{
SaveTreeviewState(tvManual.Nodes);
// Clear session
Session["Treeview"] = null;
// Add arraylistm to session
Session["Treeview"] = NodePaths;
}
在母版查看我的會話是否設置的Load事件。當會話設置時,我調用讀取會話的方法。
會話中的數組列表包含我所有的節點,所以這是正確的。但是,所有節點的屬性都已設置爲false。這是不正確的,因爲我擴展了多個節點。
希望你們瞭解我的問題,並能幫助我。
日Thnx先進
我現在存儲的值而不是對象: NodePaths.Add(t.Expanded); 它沒有幫助。所有的值都是假的 – Martijn 2009-02-05 15:01:59