星空网 > 软件开发 > ASP.net

Devexpress TreeList控件绑定显示父子节点对像

今天一位同事咨询Devexpress TreeList控件绑定自动显示父子节点对像,但结果是不会显示带父子节点关系,而是将所有的节点作为父节点显示出来了,对像类的代码如下

 public class Item:XPBaseObject { public Item()      : base()    {    }    public Item(Session session)      : base(session)    {    }     [Key(true)]    public int Id{ get;set; }    public string Name{get;set;}    [Association("SubItems"),Persistent("ParentId")]    public Item ParentItem;   [Association("SubItems", typeof(Item)), Aggregated]    public XPCollection<Item> SubItems    {      get { return GetCollection<Item>("SubItems"); }    }  }  

 

1 //...省略部分   2 3       this.treeList1.KeyFieldName = "Id";4       this.treeList1.Name = "treeList1";5       this.treeList1.ParentFieldName = "ParentId";6 7 //...省略部分    

 

实际XPO在数据库中自动生成的数据结构也是符合我们设计的要求的,填写的数据什么地都是正确的,但结果就是不会按照父子节点关系来显示。最后在之前的代码中找到不一样的地方,就是this.treeList1.ParentFieldName = "ParentId"; 这里的字段名在对像类中没有显示声明一个属性导致,虽然在属性ParentItem里有指定字段名ParentId但这里仅仅用于将外键关系存入ParentId这个字段而已。TreeList控件并不会智能地读取该值作为父节点的主键值,还是得要在对像类中声明一个只读的ParentId属性才能解决这个问题,见下面的代码:

 1 public class Item:XPBaseObject 2  { 3  4 //...省略 5  6    7     [NonPersistent] 8    public int ParentId 9     {10      get { return ParentItem == null ? 0 : this.ParentItem.Id; }11     }12 13 14 //...省略15 16   17 }  

 

总结:TreeList 控件中绑定的字段都是需要在对像类中要存在的属性才可以绑定,不能光在数据库中存在字段就可以,如果属性不存在可以写一个只读并且不用存入数据库的属生用于绑定专用。

 




原标题:Devexpress TreeList控件绑定显示父子节点对像

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

国际快递小包:https://www.goluckyvip.com/tag/32319.html
二次冻结资金:https://www.goluckyvip.com/tag/3232.html
国际快递印尼专线:https://www.goluckyvip.com/tag/32320.html
国际快递用什么:https://www.goluckyvip.com/tag/32321.html
国际快递专线:https://www.goluckyvip.com/tag/32322.html
国际快递转运怎么弄:https://www.goluckyvip.com/tag/32323.html
恐怖游轮2002 恐怖游轮2022:https://www.vstour.cn/a/365178.html
时尚电商平台Meesho拟融资3亿美元!:https://www.kjdsnews.com/a/1836524.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流