treeview控件的Expand事件下加载数据的控制
来源:互联网 发布:linux中mkdir命令 编辑:程序博客网 时间:2024/05/12 02:02
1、使用事件tvHeLiuDM_BeforeExpand(object sender, TreeViewCancelEventArgs e)在展开节点时发生
2、使用事件tvHeLiuDM_AfterCollapse(object sender, TreeViewEventArgs e)在折叠节点时发生
3、如标题,想要在节点Expand发生时才加载下级节点的数据控制需要在beforeExpand事件(支持点击图片展开和双击节点展开)中添加想要的逻辑:
示例代码如下:
void tvHeLiuDM_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
if (e.Action == TreeViewAction.Unknown)
return;
if (e.Node == null || e.Node.Tag == null || !e.Node.Tag.ToString().Equals(要加载节点的tag标志))
return;
if (e.Node.Nodes.Count == 1)//如果当前节点有且仅有一个,且为默认节点时清除该节点,否则无需重新加载数据
{
if (e.Node.Nodes[0].Text.Trim().Equals(DEFAULTNODENAME))
e.Node.Nodes.Clear();
else
return;
}
if (e.Node.Nodes.Count > 1) //如果当前节点下已经加载过数据,无需重新加载数据
return;
AddChildrenToParentNode(e.Node);//加载节点的数据
}
void tvHeLiuDM_AfterCollapse(object sender, TreeViewEventArgs e)
{
if (e.Action == TreeViewAction.Unknown)
return;
if (e.Node == null && e.Node.Tag == null || !e.Node.Tag.ToString().Equals(HELIUTAG))
return;
if (e.Node.Nodes.Count == 0)
e.Node.Nodes.Add(DEFAULTNODENAME);//折叠时添加默认节点,提示用户节点可以展开
}
4、这里需要注意的,我们的目标是不想再开始就加载数据,所以在初始控制节点展开的时候需要注意:
如:
我们默认需要展开的是根节点下的第一级节点,所以我们会用到rootNode.Expand();这个方法(展开当前节点的下一级节点),
但是我们观察发现,第一级节点下的数据也被加载了(即展开根节点时,第一级节点也调用了Expand()方法),因为默认如果第一级
节点是不折叠的。所以,我们需要:
firstNode.Collapse();
rootNode.Nodes.Add(firstNode);
rootNode.Expand();
即可实现。
- treeview控件的Expand事件下加载数据的控制
- TreeView控件的边界控制
- TreeView 树形控件的加载
- TreeView控件的双击事件
- 不需要ajax,当展开treeview控件的时候加载数据
- C#下动态加载结点的TreeView控件
- TreeView 控件树节点 TreeNode 的异步加载及对节点 CHECKBOX 的多选控制
- TreeView控件的属性和事件
- TreeView控件AfterSelect、NodeMouseClick事件的问题
- 【项目】TreeView控件的CheckBox选中事件
- fieldset的collapse和expand事件
- 一种加载TreeView数据的新写法
- treeview 加载数据的递归代码
- Android控制布局下的控件的点击事件
- .NET平台下带权限控制的TreeView控件节点生成算法
- NET平台下带权限控制的TreeView控件节点生成算法
- .NET平台下带权限控制的TreeView控件节点生成算法
- .NET平台下带权限控制的TreeView控件节点生成算法
- sigprocmask 用法
- 《Pragmatic unit testing:in java with Junit》阅读
- Core Data浅谈系列之五 : 在UITableView中展示
- 对 mysql Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (gb2312_chinese_ci,I的解决
- tapstream
- treeview控件的Expand事件下加载数据的控制
- Core Data浅谈系列之六 : 验证用户输入
- AS3 Embed用法笔记
- oracle oledb 驱动找不到怎么办
- 程序员的八个级别
- 用JSP在Div中随机点分布
- JS中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
- Core Data浅谈系列之七 : 使用NSFetchedResultsController
- C#反射机制介绍