DevEpress控件的treeList完整小案例_第1页
DevEpress控件的treeList完整小案例_第2页
DevEpress控件的treeList完整小案例_第3页
已阅读5页,还剩9页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DevExpress 控件的 treeList 完整小案例这篇内容对刚接触 treeList 的程序员来说,会有一定的 帮助。以下会以一个小案例来讲解 treeList 的一些属性方法及事件这是程序的窗体, frmTableMaintenance 为窗体名,而 groupControl1 是一个分组控件,添加和修改都是 用同一个 分组,也就是说,不管是添加还是修改,用的都是同一个页 面,而 button 跟随操作的变化而变化首先,加载树,即将数据绑定到 treeList 中1 /2 / 加载树3 /tl_TableMaintain 是 treeList 的名称/ 对于绑定数据, treeLis

2、t 有自带的,可以不用 自己去递归。直接指定 KeyFieldName( 主键 ),ParentFieldName(父键),以及 tag 值。trythis.tl_TableMaintain.Nodes.Clear();/ 清空所有节点,以便重新加载1011ResultBase _arryTableName =Global.Get("System/GetTableMaintain");1213if (_arryTableName != null)1415snList =(List)JsonConvert.DeserializeObject(_arryTableName.Re

3、sult,typeof(List);/ 数据源 snList ,这里获取数据源的方式可自由定义161718TreeListNode node =19tl_TableMaintain.AppendNode(null, -1);node.SetValue(treeListColumn1, " 表结构维护 ");20LoadTreeCtrl(node, "-1");21TreeListProperty(tl_TableMaintain);/ 调用方法,设置属性2223catch (Exception ex)2425262728private void Load

4、TreeCtrl(TreeListNode pnode,string parentkey)2930try3132int index = 0;33List dv = _snList.Where(o =>o.parent_key.Trim() = parentkey.Trim().ToList();/ 根据父级 id 获取子节点循环加载34foreach (erp_dev_table rv in dv)3536TreeListNode node =pnode.TreeList.AppendNode(rv.table_key, pnode);4041424344454647484950

5、51525354555637node.SetValue(0,rv.table_name_english);3839node.Tag = rv;LoadTreeCtrl(node,Command.Instance.Getstring(rv.table_key);catch (Exception ex)/ 设置 treeList 的属性/private void TreeListProperty(TreeList tl)58 tl.OptionsView.ShowColumns = false;/ 是否显示选中的行59 tl.OptionsBehavior.Editable = false;/ 不

6、可编辑60 tl.OptionsView.ShowHorzLines = false;/OptionsView 提供对树状列表的显示选项 ,设置水平线 是否显示61 tl.OptionsView.ShowIndicator = false;/ 节点 的指示面板是否显示62 tl.OptionsView.ShowVertLines = false;/ 垂直线条是否显示63 / 设置 treeList 的折叠样式为 + - 号64 tl.LookAndFeel.UseDefaultLookAndFeel =false;65 tl.LookAndFeel.UseWindowsXPTheme =tru

7、e;66 tl.OptionsSelection.InvertSelection = true;/聚焦的样式是否只适用于聚焦细胞或所有细胞除了聚焦对 象,失去焦点后67 69然后,单击或双击树节点时,加载该节点对象的详细信息, 如图:如果树里面的节点 较多,可以采取查询的方法定位到该节 点上。如图中的查询框一样,当点击查询时,查看数据库中 是否存在该对象, 若存在, 则将焦点定位到该节点上, 反之, 则提示输入的对象不存在!如图:代码如下:1 /2 / 点击查询,查出相应的3 /4 /5 /EventArgs e)7 8tName = txt_name.Text.Trim();9if (!St

8、ring.IsNullOrEmpty(tName)101112GetTMByName();13btn_saveOrUpdate.Text = " 修改 "1415else16176Global.ShowMeg(Command.MsgType.Warning, " 请填写您要查询的表名 ");18this.txt_name.Focus();19202122/23/迭代找到节点24/private void btn_selectTName_Click(object sender,26/27/28private TreeListNode forNode(Tre

9、eListNodenode, string text)2930erp_dev_table tableOne =(erp_dev_table)node.Tag;31if (tableOne!=null)3332if (tableOne.table_name_english=text)3435return node;36373839/循环父节点下的所有子节点4043foreach (TreeListNode n in node.Nodes)TreeListNode rn = forNode(n, text);45return rn;464748return null;49 505152public

10、 void GetTMByName()5354TreeListNode node =forNode(this.tl_TableMaintain.Nodes0, tName);55if (node = null)5657Global.ShowMeg(Command.MsgType.Warning, " 您输入有误,当前实体不存在");58return;596061if (node.ParentNode.Expanded = false)6263node.ExpandAll();646566this.tl_TableMaintain.FocusedNode = node;67BangDing();68697071public void BangDing() _currNode =(erp_dev_table)tl_TableMaintain.FocusedNode.Tag; erp_dev_table tb = _currNode; txt_chinaName.Text = tb.table_name_chain; txt_englishName.Text = tb.table_name_english; grp_tableDesc.Text = " 当前节点为"+tb.table_name_english;if (tb.table_ty

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论