操作Devexpress treelist中的项

 

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

dev中TreeList的应用

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));

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星火燎猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值