首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# treeView 只载入第一层,点击节点时载入下一层,该怎么解决

2012-03-28 
c# treeView 只载入第一层,点击节点时载入下一层由于载入到TREEVIEW的数据量过大,载入耗时很长,想实现载入

c# treeView 只载入第一层,点击节点时载入下一层

由于载入到TREEVIEW的数据量过大,载入耗时很长,想实现载入时只载入第一层,再点击节点时再从数据库载入选中节点的子节点的内容的效果,这样更好。

问题: 1.实现这样的功能是要用到afterSelect事件吗?
  2.如果打开某个节点下还有子节点,如何做到不载入子节点却在这个节点的左边显示+号 ?



[解决办法]
先在TreeView中加入父节点,在后添加控件的NodeMouseClick事件,在事件中写上加载子节点的代码,如果有多和父节点的话:
 private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Node.Text == "父节点")
{
e.Node.Nodes.Add("1");
e.Node.Nodes.Add("2");
e.Node.Nodes.Add("3");
e.Node.Nodes.Add("4");
e.Node.Nodes.Add("5");
e.Node.Expand();
}
}
[解决办法]
1.afterSelect可以实现,不过你得处理很多其他细节问题,到时候你就知道了,

2.加上一个假的子节点,名字叫“等待加载子节点...”,
[解决办法]
处理第一层节点的afterSelect事件,然后递归绑定节点及节点的afterSelect事件。
[解决办法]
在TreeView的BeforeExpand事件中获取当前要展开的节点.加载当前节点下的子节点和子节点的一级节点.只能这样了.如果设置假节点的话,你又不确定哪一个改有假节点.这样是只加载当前节点下的二级节点,一定程度上减少了数据量

热点排行