DevExpress控件的treeList完整小案例.docx

上传人:b****3 文档编号:11766223 上传时间:2023-06-02 格式:DOCX 页数:8 大小:16.42KB
下载 相关 举报
DevExpress控件的treeList完整小案例.docx_第1页
第1页 / 共8页
DevExpress控件的treeList完整小案例.docx_第2页
第2页 / 共8页
DevExpress控件的treeList完整小案例.docx_第3页
第3页 / 共8页
DevExpress控件的treeList完整小案例.docx_第4页
第4页 / 共8页
DevExpress控件的treeList完整小案例.docx_第5页
第5页 / 共8页
DevExpress控件的treeList完整小案例.docx_第6页
第6页 / 共8页
DevExpress控件的treeList完整小案例.docx_第7页
第7页 / 共8页
DevExpress控件的treeList完整小案例.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

DevExpress控件的treeList完整小案例.docx

《DevExpress控件的treeList完整小案例.docx》由会员分享,可在线阅读,更多相关《DevExpress控件的treeList完整小案例.docx(8页珍藏版)》请在冰点文库上搜索。

DevExpress控件的treeList完整小案例.docx

DevExpress控件的treeList完整小案例

DevExpress控件的treeList完整小案例

这篇内容对刚接触treeList的程序员来说,会有一定的帮助。

以下会以一个小案例来讲解treeList的一些属性方法及事件

这是程序的窗体,frmTableMaintenance为窗体名,而groupControl1是一个分组控件,添加和修改都是用同一个分组,也就是说,不管是添加还是修改,用的都是同一个页面,而button跟随操作的变化而变化

首先,加载树,即将数据绑定到treeList中

1///

2///加载树

3///tl_TableMaintain是treeList的名称

      ///对于绑定数据,treeList有自带的,可以不用自己去递归。

直接指定KeyFieldName(主键),ParentFieldName(父键),以及tag值。

4///

5publicvoidLoadTree()

6{

7try

8{

9this.tl_TableMaintain.Nodes.Clear();//清空所有节点,以便重新加载

10

11ResultBase_arryTableName=Global.Get("System/GetTableMaintain");

12

13if(_arryTableName!

=null)

14{

15_snList=(List)JsonConvert.DeserializeObject(_arryTableName.Result,typeof(List));//数据源snList,这里获取数据源的方式可自由定义

16

17}

18TreeListNodenode=tl_TableMaintain.AppendNode(null,-1);

19node.SetValue(treeListColumn1,"表结构维护");

20LoadTreeCtrl(node,"-1");

21TreeListProperty(tl_TableMaintain);//调用方法,设置属性

22}

23catch(Exceptionex)

24{}

25}

26

27

28privatevoidLoadTreeCtrl(TreeListNodepnode,stringparentkey)

29{

30try

31{

32intindex=0;

33Listdv=_snList.Where(o=>o.parent_key.Trim()==parentkey.Trim()).ToList();//根据父级id获取子节点循环加载

34foreach(erp_dev_tablervindv)

35{

36TreeListNodenode=pnode.TreeList.AppendNode(rv.table_key,pnode);

37node.SetValue(0,rv.table_name_english);

38node.Tag=rv;

39LoadTreeCtrl(node,Command.Instance.Getstring(rv.table_key));

40}

41}

42catch(Exceptionex)

43{

44}

45}

46

47

48

49

50

51

52///

53///设置treeList的属性

54///

55///

56privatevoidTreeListProperty(TreeListtl)

57{

58tl.OptionsView.ShowColumns=false;//是否显示选中的行

59tl.OptionsBehavior.Editable=false;//不可编辑

60tl.OptionsView.ShowHorzLines=false;//OptionsView提供对树状列表的显示选项,设置水平线是否显示

61tl.OptionsView.ShowIndicator=false;//节点的指示面板是否显示

62tl.OptionsView.ShowVertLines=false;//垂直线条是否显示

63//设置treeList的折叠样式为+-号

64tl.LookAndFeel.UseDefaultLookAndFeel=false;

65tl.LookAndFeel.UseWindowsXPTheme=true;

66tl.OptionsSelection.InvertSelection=true;//聚焦的样式是否只适用于聚焦细胞或所有细胞除了聚焦对象,失去焦点后

67}

68

69

然后,单击或双击树节点时,加载该节点对象的详细信息,如图:

如果树里面的节点较多,可以采取查询的方法定位到该节点上。

如图中的查询框一样,当点击查询时,查看数据库中是否存在该对象,若存在,则将焦点定位到该节点上,反之,则提示输入的对象不存在!

如图:

代码如下:

1///

2///点击查询,查出相应的

3///

4///

5///

6privatevoidbtn_selectTName_Click(objectsender,EventArgse)

7{

8tName=txt_name.Text.Trim();

9if(!

String.IsNullOrEmpty(tName))

10{

11

12GetTMByName();

13btn_saveOrUpdate.Text="修改";

14}

15else

16{

17Global.ShowMeg(Command.MsgType.Warning,"请填写您要查询的表名");

18this.txt_name.Focus();

19}

20}

21

22///

23///迭代找到节点

24///

25///

26///

27///

28privateTreeListNodeforNode(TreeListNodenode,stringtext)

29{

30erp_dev_tabletableOne=(erp_dev_table)node.Tag;

31if(tableOne!

=null)

32{

33if(tableOne.table_name_english==text)

34{

35returnnode;

36}

37

38}

39//循环父节点下的所有子节点

40foreach(TreeListNodeninnode.Nodes)

41{

42

43TreeListNodern=forNode(n,text);

44if(rn!

=null)

45returnrn;

46

47}

48returnnull;

49}

50

51

52publicvoidGetTMByName()

53{

54TreeListNodenode=forNode(this.tl_TableMaintain.Nodes[0],tName);

55if(node==null)

56{

57Global.ShowMeg(Command.MsgType.Warning,"您输入有误,当前实体不存在");

58return;

59}

60

61if(node.ParentNode.Expanded==false)

62{

63node.ExpandAll();

64

65}

66this.tl_TableMaintain.FocusedNode=node;

67BangDing();

68

69

70}

71

    publicvoidBangDing()

{

_currNode=(erp_dev_table)tl_TableMaintain.FocusedNode.Tag;

erp_dev_tabletb=_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_type==1)

{

rd_directory.Checked=true;}

elseif(tb.table_type==2)

{

rb_table.Checked=true;}

txt_remark.Text=tb.table_memo;

med_desc.Text=tb.table_descr;grp_tableDesc.Show();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2