DevExpress控件的treeList完整小案例Word文件下载.docx
《DevExpress控件的treeList完整小案例Word文件下载.docx》由会员分享,可在线阅读,更多相关《DevExpress控件的treeList完整小案例Word文件下载.docx(8页珍藏版)》请在冰点文库上搜索。
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=&
gt;
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
然后,单击或双击树节点时,加载该节点对象的详细信息,如图:
如果树里面的节点较多,可以采取查询的方法定位到该节点上。
如图中的查询框一样,当点击查询时,查看数据库中是否存在该对象,若存在,则将焦点定位到该节点上,反之,则提示输入的对象不存在!
如图:
代码如下:
2///点击查询,查出相应的
3///
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)
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!
45returnrn;
47}
48returnnull;
49}
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();
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();