日期:2014-05-18  浏览次数:20421 次

动态树如何缓存,进来给点思路!(顶的有分,明天结帐!)

    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;
}