C# DevExpress XtraTreeList数据绑定

C# DevExpress XtraTreeList数据绑定

₯想了好几个钟,终于还是理明白了这个控件该怎么绑定数据了,先做个记录,免得下次忘了,嘿嘿~

现在有两种方式可选:

1、通过List<自定义类>

(1)新建一个包含id,parentId,nodeText的类,如TreeListParams:
class TreeListParams
{
    public string id { get; set; }
    public string parentId { get; set; }
    public string nodeText { get; set; }
}
(2)将查询到的数据循环存入List,设置插入XtraTreeList的TreeListColumn的属性,并设置XtraTreeList的DataSource为List:
DataTable dt = 【数据库查询到的数据】;
List<TreeListParams> tlpl = new List<TreeListParams>();
foreach (DataRow dr in dt.Rows)
    tlpl.Add(new TreeListParams() { id = dr["id"].ToString(), parentId = dr["parentId"].ToString()});
 TreeListColumn tlc = new TreeListColumn()
 {
     Name = "tlc1",
     Caption = "xxx", //列头,此处隐藏,设不设都可以
     FieldName = "nodeText", //此处因为我的数据源只有两列,其中id列要作为树结点的显示文本
     VisibleIndex = 0,
     Visible = true,
 };
 treeList1.Columns.Clear();
 treeList1.Columns.AddRange(new TreeListColumn[] { tlc });
 treeList1.KeyFieldName = "id";
 treeList1.ParentFieldName = "parentId";
 treeList1.DataSource = tlpl;
 treeList1.RefreshDataSource();
 treeList1.ExpandAll();

2、通过DataTable

DataTable dt = 【数据库查询到的数据】;
TreeListColumn tlc = new TreeListColumn()
 {
     Name = "tlc1",
     Caption = "xxx", //列头,此处隐藏,设不设都可以
     FieldName = "id", //此处因为我的数据源只有两列,其中id列要作为树结点的显示文本
     VisibleIndex = 0,
     Visible = true,
 };
 treeList1.Columns.Clear();
 treeList1.DataSource = dt;
 treeList1.KeyFieldName = "id";
 treeList1.Columns.AddRange(new TreeListColumn[] { tlc });
 treeList1.ParentFieldName = "parentId";
 treeList1.ExpandAll();

两种方式得到的结果:
在这里插入图片描述
两种方式一比较,还是方式二直接使用DataTable比较方便,省去了循环搬数据的步骤。

【注】作为父节点的数据行parentId为null。
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值