zoukankan      html  css  js  c++  java
  • DevExpress的TreeList怎样设置数据源,从实例入手

    场景

    Winform控件-DevExpress18下载安装注册以及在VS中使用:

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243

    在上面已经实现DevExpress的安装之后,拖拽一个TreeList,然后怎样给其设置数据源。

    设置数据源

    1.TreeList 控件可以被绑定到任何传统的数据源: BindingSource、DataTable、DataView 和 DataSet 对象,以及实现了 IList、TypedList 或 IBindingList 接口的对象。

    2.要把 TreeList 控件绑定到数据源,则使用 TreeList.DataSource 属性。

    3.必须在数据源中通过两个字段实现关于父/子关系的信息。 一个字段必须存储节点的唯一 ID。 另一个字段必须为每个节点都包含父节点的 ID。 要为 TreeList 控件指定这些字段,则使用 TreeList.KeyFieldName 和 TreeList.ParentFieldName 属性。

    效果

    子节点较多的树形结构效果

    简单的TreeList效果

    注:

    博客主页:
    https://blog.csdn.net/badao_liumang_qizhi
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    实现

    为了存取每个节点的父级关系,新建一个节点实体类用来存取节点信息。

    此实体具体的属性可以自行添加,但是如上面所说的,必须要有能标识节点间父子关系的

    属性字段并且告诉TreeList你设置的标识变量和父级标识变量是啥。

    public class DataTreeNode
        {
            private string id;
            private string parentId;
            private string nodeText;
           
    
            public string Id
            {
                get { return id; }
                set { id = value; }
            }
    
            public string ParentId
            {
                get { return parentId; }
                set { parentId = value; }
            }
    
            public string NodeText
            {
                get { return nodeText; }
                set { nodeText = value; }
            }
    
            
        }

    然后设置数据源

    string fieldName = "NodeText";
                string keyFieldName = "Id";
                string parentFieldName = "ParentId";
                string fileName = System.IO.Path.GetFileNameWithoutExtension(String.Format("{0}{1}",Global.Instance.CurrCompareDataFile,Global.MAIN_EXT));
                DataTreeNode node = new DataTreeNode();
                node.ParentId = null;
                node.NodeText = fileName;
                node.Id = Global.Instance.CurrCompareDataFile;
                Global.Instance.CompareData.Add(node);
                DataTreeListHelper.SetTreeListDataSource(this.treeList2, Global.Instance.CompareData, fieldName, keyFieldName, parentFieldName);
                this.treeList2.RefreshDataSource();

    这里设置数据源抽离了一个方法SetTreeListDataSource,在方法中

    treeList.KeyFieldName = keyFieldName;
    treeList.ParentFieldName = parentFieldName;
    treeList.DataSource = data;

    这里是构建了没有层级关系的数据源,效果如上面第二个效果图那样,如果想

    构造出树形层级关系,就构造出包含父子层数据结构的数据源即可。

  • 相关阅读:
    003 Leaflet 第三个demo 地图上的面积测量
    002 Leaflet 第二个demo 地图上的矩形拉框选择
    001 Leaflet 第一个demo 加载天地图
    This关键字,打印花瓣的数量
    Myeclipse8.5 添加Tomcat7
    WGS84经纬度 与 web 墨卡托相互转化 工具类
    java list集合去重复
    response 下载文件
    jquery实现可拖拽的div
    linux 前端环境搭建
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/11671600.html
Copyright © 2011-2022 走看看