zoukankan      html  css  js  c++  java
  • XtraGrid控件-----List数据源实现主从表关系绑定

    一、实现方式

    1、准备源数据。

    /// <summary>
    /// 记录基础信息
    /// </summary>
    public class DetailInfo
    {
        public DetailInfo()
        {
            this.ID = Guid.NewGuid().ToString();
        }
    
        /// <summary>
        /// ID标识
        /// </summary>
        public string ID { get; set; }
    
        /// <summary>
        /// 名称
        /// </summary>
        public string Name { get; set; }
    
        /// <summary>
        /// 描述信息
        /// </summary>
        public string Description { get; set; }
    }
    
    /// <summary>
    /// 二级层次的列表
    /// </summary>
    public class Detail2Result : DetailInfo
    {
        public List<DetailInfo> Detail2List { get; set; }
    }

    2、绑定数据源

    /// <summary>
    /// 绑定数据源
    /// </summary>
    private void BindData()
    {
        //创建测试数据
        var result1 = new Detail2Result()
        {
            Name = "测试1",
            Description = "描述内容",
            Detail2List = new List<DetailInfo>()
            {
                new DetailInfo()
                {
                    Name = "111测试",
                    Description = "111描述内容"
                },
                new DetailInfo()
                {
                    Name = "222测试",
                    Description = "222描述内容"
                },
                new DetailInfo()
                {
                    Name = "333测试",
                    Description = "333描述内容"
                }
            }
        };
    
        var result2 = new Detail2Result()
        {
            Name = "测试2",
            Description = "描述内容",
            Detail2List = new List<DetailInfo>()
            {
                new DetailInfo()
                {
                    Name = "111测试",
                    Description = "111描述内容"
                },
                new DetailInfo()
                {
                    Name = "222测试",
                    Description = "222描述内容"
                },
                new DetailInfo()
                {
                    Name = "333测试",
                    Description = "333描述内容"
                }
            }
        };
    
        //构造一个记录的集合
        var list = new List<Detail2Result>() { result1, result2 };
    
        //绑定数据源
        this.gridControl.DataSource = list;
    }

    3、DevExpress的GridControl控件的设置

    在主视图下添加一层视图为gridView2,并修改当前视图的 Change LeveName 为Detail2List (如果不修改结果是数据绑定失败)

    image

    设置gridView2属性中的ViewCaption 属性。

    image

     

    4、效果

    image 

    5、子表格获取行数据

    DevExpress.XtraGrid.Views.Grid.GridView currentView = (DevExpress.XtraGrid.Views.Grid.GridView)this.gridControl.FocusedView;
    DetailInfo focusRow = currentView.GetFocusedRow() as DetailInfo; //用在事件中:currentView.GetRow(e.RowHandle) as DetailInfo;
    XtraMessageBox.Show(focusRow.Name);
  • 相关阅读:
    解决无法进入安全模式
    解决SQLite找不到数据表的问题
    利用js的垃圾回收原理来理解闭包(Closure)问题
    《降级论》《按时交作业的学生何以常穿脏袜子》读后感
    ie6下出现“缺少标识符、字符串或者数字”
    两个想法
    WdatePicker.js帮助文档
    最近一直在研究网站的推广。。。
    这个。。。。我不知道说什么。。。
    今天忽然发现,最近做的网站的一个目标关键字已经实现了。。。
  • 原文地址:https://www.cnblogs.com/springsnow/p/13438831.html
Copyright © 2011-2022 走看看