我有一个ASP.NET树视图填充自定义treenodes(ExtensionRangeTreeNode subclassed从TreeNode)。 回发树视图填充TreeNodes,而不是我的自定义treenode类。ASP.Net Treeview:奇怪的回发行为
这是怎么回事?
感谢, BP
我有一个ASP.NET树视图填充自定义treenodes(ExtensionRangeTreeNode subclassed从TreeNode)。 回发树视图填充TreeNodes,而不是我的自定义treenode类。ASP.Net Treeview:奇怪的回发行为
这是怎么回事?
感谢, BP
不看你的特定的代码,我只能假设你自定义的树节点没有使用ViewState的。这可以解释为什么它不会在回发中填充。
DoesExtensionRangeTreeNode完全处理完全保存自己的视图状态完全?如果是这样,你可以将返回的节点转换为该类型吗?
这forum entry可以回答这个问题:
基本上,它是说一个自定义TreeView控件必须使用。必须重写CreateNode函数才能实例化正确的TreeNode类型。在这里,它将是ExtensionRangeTreeNode而不是“CustomTreeNode”。
public class CustomTreeView : TreeView
{
protected override TreeNode CreateNode()
{
return new CustomTreeNode(this, false);
}
}
当然,你必须将ExtensionRangeTreeNode(树形目录树视图,布尔isRoot)构造函数签名添加到您当前ExtensionRangeTreeNode实现。
我想到了这一点。但是,尝试在回发时重新加载viewstate会产生以下错误: “无法加载视图状态。要加载视图状态的控制树必须与前一个请求期间用于保存视图状态的控制树匹配。 BP – theBruce 2009-07-09 20:46:34