动态树如何缓存,进来给点思路!(顶的有分,明天结帐!)
2.0
树控件,Page_Load加载的是根节点,后面的节点是在TreeView1_SelectedNodeChanged事件里根据你点的哪个根节点加载出来的``
这样的数据如何缓存?麻烦大家给点思路!
------解决方案--------------------(1)将所有数据保存取一个 DataTable 中,
(2)再将这个DataTable 保存到 Application[ "cName "]
(3)或者将这个DataTabel 保存到 Cache[ "cName "]
(4)或者将这个DataTable 保存到 Session[ "cName "]
------解决方案--------------------1个是包节点保存到2个datatable,根节点保存到datatable1,2级节点保存datatable2,这样TreeView1_SelectedNodeChanged的时候查找对应的子节点也很好查找。
------解决方案--------------------怎么没有人来不会帮你顶顶吧
------解决方案--------------------ArrayList也可以保存到缓存,楼主看看MSDN,一些缓存的基本用法就知道怎么操作了。
------解决方案--------------------帮忙顶...
------解决方案--------------------既然帮顶有份,为什么不顶?
------解决方案--------------------顶一下,sington缓存
------解决方案--------------------学习~~~~~UP
------解决方案--------------------顶一下!!!
------解决方案--------------------一定要缓存?
有多少级?
------解决方案--------------------顶
------解决方案--------------------up
------解决方案--------------------帮忙来了
------解决方案--------------------up
------解决方案--------------------MARK
------解决方案--------------------感觉2.0 树控件稍微数据多的话就比较慢,的确是要缓存起来,还是用ArrayList保存到缓存
------解决方案--------------------友情支持
------解决方案--------------------顶
------解决方案--------------------给你点代码,不知道有没有用 private TreeNode FindNode(string functionID)
{
TreeNode tmpNode;
for (int i = 0; i < tvfunctions.Nodes.Count; i++)
{
tmpNode = FindNode2(tvfunctions.Nodes[i], functionID);
if (tmpNode != null) return tmpNode;
}
return null;
}
private TreeNode FindNode2(TreeNode rootNode, string functionID)
{
if (rootNode == null) return null;
TreeNode tmpNode;
if (rootNode.Value == functionID)
{
return rootNode;
}
if (rootNode.ChildNodes.Count > 0)
{
for (int i = 0; i < rootNode.ChildNodes.Count; i++)
{
tmpNode = FindNode2(rootNode.ChildNodes[i], functionID);
if (tmpNode != null) return tmpNode;
}
}
return null;
}