2009-07-09 70 views
1

我有一個ASP.NET樹視圖填充自定義treenodes(ExtensionRangeTreeNode subclassed從TreeNode)。 回發樹視圖填充TreeNodes,而不是我的自定義treenode類。ASP.Net Treeview:奇怪的回發行爲

這是怎麼回事?

感謝, BP

回答

0

不看你的特定的代碼,我只能假設你自定義的樹節點沒有使用ViewState的。這可以解釋爲什麼它不會在回發中填充。

+0

我想到了這一點。但是,嘗試在回發時重新加載viewstate會產生以下錯誤: 「無法加載視圖狀態。要加載視圖狀態的控制樹必須與前一個請求期間用於保存視圖狀態的控制樹匹配。 BP – theBruce 2009-07-09 20:46:34

0

DoesExtensionRangeTreeNode完全處理完全保存自己的視圖狀態完全?如果是這樣,你可以將返回的節點轉換爲該類型嗎?

1

forum entry可以回答這個問題:

基本上,它是說一個自定義TreeView控件必須使用。必須重寫CreateNode函數才能實例化正確的TreeNode類型。在這裏,它將是ExtensionRangeTreeNode而不是「CustomTreeNode」。

public class CustomTreeView : TreeView 
{ 
    protected override TreeNode CreateNode() 
    { 
     return new CustomTreeNode(this, false); 
    } 
} 

當然,你必須將ExtensionRangeTreeNode(樹形目錄樹視圖,布爾isRoot)構造函數簽名添加到您當前ExtensionRangeTreeNode實現。