zoukankan      html  css  js  c++  java
  • 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 控件中绑定的字段都是需要在对像类中要存在的属性才可以绑定,不能光在数据库中存在字段就可以,如果属性不存在可以写一个只读并且不用存入数据库的属生用于绑定专用。

  • 相关阅读:
    use tomcat to access the file cross the environment
    data audit on hadoop fs
    Good practice release jar to Nexus
    套路!从Ruby 到 Cocoapods的发布
    单元测试之NSNull 检测
    UIwebView 和 H5交互详情
    IT 需要知道的一些专业名词和解释 (长期更新)
    Git 操作 学习资源 网址
    GCD
    软件工程——个人总结
  • 原文地址:https://www.cnblogs.com/linkbiz/p/5207187.html
Copyright © 2011-2022 走看看