如果需要在单元格添加时则用TreeList如果只是单纯读取数据或检索数据时则用GridControl

1.如果点击添加 时则添加TreeList的节点:

protected internal void btnAdd_Click(object sender, EventArgs e) { if (treeList1.Nodes.Count == 0) { TreeListNode node = treeList1.AppendNode(new object[] { 0}, -1); //数组中可写多个参数,但是每一个参数代表一列 } else { int dy = Convert.ToInt32(treeList1.Nodes.LastNode.GetValue("cID")); //获取最后一节点ID TreeListNode node = treeList1.AppendNode(new object[] { dy + 1 }, -1); }

}

2. cPort = treeList1.Nodes[i].GetDisplayText("cPort").ToString().Trim(); //获取单元格中的文本,cport代表列名

bool falge = Convert.ToBoolean(treeList1.Nodes[i].GetValue("cFlage")); //获取复选框的值,cFlage则代表列名

3.删除选中的节点

/// <summary> /// 最后选择的节点 /// </summary> TreeListNode deletenode;

private void treeList1_AfterFocusNode(object sender, DevExpress.XtraTreeList.NodeEventArgs e) { deletenode =e.Node; //获取最后的ID

}

public void btnDel_Click(object sender, EventArgs e) {

this.treeList1.DeleteNode(deletenode); //删除节点

}

4.给节点添加图片

treeListDevice.AppendNode(new object[] { id, type }, 0, 0, 0, 0); //0代表第几张图片代表根目录用的,-1代表子节点图片

5.给节点添加背景颜色

private void treeListConcentration_CustomDrawNodeCell(object sender, CustomDrawNodeCellEventArgs e) { string sql = "select 报警信息 from 实时监测数据 where 设备编号='" + nodeID + "'"; DataTable dt = DataHelper.ExecuteDataTable(sql, DataHelper.DataBaseType.属性数据库); if (dt.Rows.Count > 0) { string co = ""; string wornInfo = dt.Rows[0]["报警信息"].ToString();

//string co = wornInfo.Substring(0, 1);//一氧化碳 //string h2s = wornInfo.Substring(1, 1);//硫化氢 //string cl2 = wornInfo.Substring(2, 1);//录气 //string O2 = wornInfo.Substring(3, 1);//氧气 //string hn3 = wornInfo.Substring(4, 1);//氨气 //string pid = wornInfo.Substring(5, 1);//光电离 //string hcl = wornInfo.Substring(5, 1);//椂化氢 string ch4 = wornInfo.Substring(6, 1);//甲烷 if (e.Node[1] != null) { if (e.Node[0].ToString().Trim() == "一氧化碳(ppm)") { message = wornInfo.Substring(0, 1);//一氧化碳 CellBackColor(e, message); } if (e.Node[0].ToString().Trim() == "硫化氢(ppm)") { message = wornInfo.Substring(1, 1);//硫化氢 CellBackColor(e, message); } if (e.Node[0].ToString().Trim() == "氯气(ppm)") { message = wornInfo.Substring(2, 1);//录气 CellBackColor(e, message); } if (e.Node[0].ToString().Trim() == "氧气(VOL%)") { message = wornInfo.Substring(3, 1);//氧气 CellBackColor(e, message); } if (e.Node[0].ToString().Trim() == "氨气(ppm)") { message = wornInfo.Substring(4, 1);//氨气 CellBackColor(e, message); //e.Appearance.BackColor = Color.Red; } if (e.Node[0].ToString().Trim() == "光电离(ppm)") { message = wornInfo.Substring(5, 1);//光电离 CellBackColor(e, message); //e.Appearance.BackColor = Color.Blue; } if (e.Node[0].ToString().Trim() == "氯化氢(ppm)") { message = wornInfo.Substring(6, 1);//椂化氢 CellBackColor(e, message); //e.Appearance.BackColor = Color.Blue; } if (e.Node[0].ToString().Trim() == "甲烷(LEL%)") { message = wornInfo.Substring(7, 1);//甲烷 CellBackColor(e, message); //e.Appearance.BackColor = Color.Blue; }

} }

}

//设置多个颜色

private void CellBackColor(CustomDrawNodeCellEventArgs e, string message) { switch (message) { case "Z"://传感器未打开

e.Appearance.BackColor = Color.Yellow; break; case "I"://传感器通信中断 e.Appearance.BackColor = Color.Blue; break; case "L"://传感器错误 e.Appearance.BackColor = Color.Brown; break; case "A"://传感器阈值报警 e.Appearance.BackColor = Color.Red; break; default: e.Appearance.BackColor = Color.Empty; break; } }

数据源绑定TreeList

//查询设备 public static void selectDevice(TreeList treeDevice) { string sql = "select dID,dName from DeviceMap "; DataTable dt= DataHelper.ExecuteDataTable(sql, DataHelper.DataBaseType.属性数据库); if (dt.Rows.Count>0) { for (int i = 0; i < dt.Rows.Count; i++) { string id = dt.Rows[i]["dID"].ToString(); string type = dt.Rows[i]["dName"].ToString(); treeDevice.AppendNode(new object[] { id,type }, -1); } } }

treeDevice.Columns["dID"].Caption = "类别"; treeDevice.Columns["dType"].Caption = "别名";

注意:必须得绑定字段

//中间插入节点

private void treeList2_CellValueChanged(object sender, DevExpress.XtraTreeList.CellValueChangedEventArgs e)//单元已有值就会增添一条空信息 { string name = e.Node.GetDisplayText(0); if (name != "") { TreeListNode node = treeList2.AppendNode(new object[] { "" }, -1);

treeList2.SetNodeIndex(node,e.Node.Id+1);

//treeList2.AppendNode(new object[] { "" }, -1); } }

获得选中的节点

nodeID = Convert.ToInt32(treeList1.FocusedNode.GetValue(treeListColumn6));

dev中TreeList的应用(转)的更多相关文章

  1. DEV中的TreeList控件应用的一个小效果实现——个人总结

    我使用最多的DEV控件就是这个TreeList啦,当然用好它很不简单,如果用好它,能做出很精彩的树形层次结构图.TreeList控件很强大,以至于你看DEV自带的DEMO,也得浪费你很长时间应用.DE ...

  2. plsql dev中Dynamic Performance Tables not accessible分析解决(转)

    使用plsql dev的朋友多遇到过类此如下面的提示: Dynamic Performance Tables not accessible, Automatic Statistics Disabled ...

  3. Dev中GridControl的导出Excel设置

    接上篇 Dev中GridControl的GridView 基本样式设置 上图: 导出部分的代码: /// <summary> /// 导出excel /// </summary> ...

  4. DEV中svg图标的使用

    0.开始之前 先看看使用效果 在操作栏的使用: 在菜单中的使用 1.简述SVG图标 中文名:可缩放矢量图形 外文名:Scalable Vector Graphics 外语缩写:SVG 开发商:万维网联 ...

  5. <转> plsql dev中Dynamic Performance Tables not accessible分析解决

    相信很多使用plsql dev的朋友多遇到过类此如下面的提示: Dynamic Performance Tables not accessible, Automatic Statistics Disa ...

  6. 玩转控件:对Dev中GridControl控件的封装和扩展

    又是一年清明节至,细雨绵绵犹如泪光,树叶随风摆动.... 转眼间,一年又过去了三分之一,疫情的严峻让不少企业就跟清明时节的树叶一样,摇摇欲坠.裁员的裁员,降薪的降薪,996的996~~说起来都是泪,以 ...

  7. DEV GridControl/TreeList 中ShowingEditor使用

    ShowingEditor事件对我来说就是控制单元格的编辑属性,在特定场景中(TreeList中要求子节点某些列可编辑,父节点不可编辑)就需要使用此事件来实现,与此同时,上一篇也介绍了特定场景单元格样 ...

  8. 关于 Dev中的GridControl 中 GridView 的 PopulateColumns() 方法

    最近使用Dev控件,Gridview绑定数据源后不能显示数据,于是在网上查询,说是使用PopulateColumns()方法,可以显示数据.试了一下,管用. 于是在所有更新数据源数据后,都用上了这句话 ...

  9. DEV winform treelist设置背景图像

    treelist是一个复杂的控件,包括选中行,奇偶行等均可以单独设置显示效果,空白区域上背景图像的代码如下: private void treeList1_CustomDrawEmptyArea(ob ...

随机推荐

  1. 区间gcd问题 HDU 5869 离线+树状数组

    题目大意:长度n的序列, m个询问区间[L, R], 问区间内的所有子段的不同GCD值有多少种. 子段就是表示是要连续的a[] 思路:固定右端点,预处理出所有的gcd,每次都和i-1的gcd比较,然后 ...

  2. docker私有仓库搭建(ubuntu 14.04和centos7)

    最近是在做一个关于docker云化的项目,马上就要开始实战.下午先做了一个私有仓库搭建的实验,先大概做个笔记,有兴趣的蛮看一下吧. 先在所有机子上都安装上docker,我的是两台ubuntu,分别是1 ...

  3. Win7+QTP10.0+IE9无法识别对象的解决方法

    在WIN7和IE9环境下使用QTP10,会出现识别不了web对象的情况,具体表现为:添加对象,先打开对象库,再打开IE,点击Add object to local 后,出现白色手指,将其拖拉到百度首页 ...

  4. POJ 3683 Priest John's Busiest Day

    2-SAT简单题,判断一下两个开区间是否相交 #include<cstdio> #include<cstring> #include<cmath> #include ...

  5. java source map

    Chrome 更新后出现了 jquery.min.map 404  (Not Found) 的信息 这个到底是什么东西?查询了一下,得到了以下资料 JQuery 官方解释 摘录一下內容 从 jQuer ...

  6. sitemap制作

    sitemap.xml生成方法(asp和php)(转) http://teachmyself.blog.163.com/blog/static/18881422920119895435272/ sit ...

  7. Netbeans 6.8 + apktool_2.0.0b9 动态调试smali文件

    前言 很早就知道用Netbeans能够单步调试smali,一直拖到现在才真正的自己实现了一次~ 下面是详细步骤! 0×1 环境及工具 a.apktool_2.0.0b9 下载地址:http://con ...

  8. CSS文字垂直居中和font-family属性

    1.单行文字的垂直居中 单行文字垂直居中比较简单,直接让行高==盒子高度即可. 2.多行文字居中 多行文字居中,只需简单计算一下盒子的上padding即可.计算公式:padding-top=(盒子的高 ...

  9. 丢手帕问题as3版

    N个孩子围成一圈报数,报到M的退出,剩下的再从1继续报数,报到M的再退出,一直持续到只剩一个人,问剩下的是哪个? package { import flash.display.Sprite; publ ...

  10. 制作双击可运行的jar

    http://www.cnblogs.com/ylawrence3/archive/2009/11/08/1350645.html