码迷,mamicode.com
首页 > 其他好文 > 详细

使用XtraGrid自定义列计算 z

时间:2015-03-03 16:38:18      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

绑定Master-Detail 关系 数据也是数据显示的一种方式,此实例使用后台代码创建数据源并绑定到gridcontrol。 

  其实方式参见:点击打开链接


  先看效果图(默认方式)
技术分享
直接给出后台代码,主要使用的是dataset创建关系。

private void simpleButton1_Click(object sender, EventArgs e)
        {
            // 定义主表
            DataTable masterTable = new DataTable("MasterTable");
            DataColumn parentColumn = new DataColumn("masterId", typeof(int));
            masterTable.Columns.Add(parentColumn);
            masterTable.Columns.AddRange(new DataColumn[]{
             new DataColumn("name",typeof(string)),
            });
            masterTable.Rows.Add(1, "class1");
            masterTable.Rows.Add(2, "class2");
            masterTable.Rows.Add(3, "class3");

            // 定义子表
            DataTable detailTable = new DataTable("DetailTable");
            DataColumn childrenColumn = new DataColumn("masterId", typeof(int));
            detailTable.Columns.Add(childrenColumn);

            detailTable.Columns.AddRange(new DataColumn[] {
             new DataColumn("id",typeof(int)),
             new DataColumn("name",typeof(string)),
             new DataColumn("age",typeof(string))
            });

            detailTable.Rows.Add(1, 1, "student1", "age1");
            detailTable.Rows.Add(2, 2, "student2", "age2");
            detailTable.Rows.Add(2, 3, "student3", "age3");
            detailTable.Rows.Add(2, 4, "student4", "age4");
            detailTable.Rows.Add(3, 5, "student5", "age5");
            detailTable.Rows.Add(3, 6, "student6", "age6");
            detailTable.Rows.Add(3, 7, "student7", "age7");
            detailTable.Rows.Add(3, 8, "student8", "age8");


            using (DataSet ds = new DataSet())
            {
                ds.Tables.AddRange(new DataTable[] { masterTable.Copy(), detailTable.Copy() });
                // 创建表关系
                DataRelation relation = new DataRelation("detailTable", ds.Tables[0].Columns[0], ds.Tables[1].Columns[0], false);
                ds.Relations.Add(relation); // 添加
                gridControl1.DataSource = ds.Tables[0];  // 指定数据源
            }
        }
  1. 指定FileName: 设置gridview的Columns的各个列的FileName为dt的ColumnName也可以,这样就可以自定义GridColumn的Caption属性了。
  2. 使 用子gridView显示字表数据:以上创建的gridControl值包含一个默认的gridView,也就是mainView。默认情况 下,gridcontrol会根据mastertable的relation 来自动创建并显示detail的数据结构,那么如果想在detail中做些操作,比如 rowupdate结束是自动计算某个值。那就用到了Level Designer(参见:点击打开链接), 其名称与 我们创建dt之间的relation时所用到的name必须一致,如上的“detailTable"。创建一个新的gridview2,自定义列,并设定 fileName,出现的效果与 1 一致。在gridview2的RowUpdated事件中可以做任何的计算操作。例如,
  3.     DataRowView view = e.Row as DataRowView;  
        view[3] = Convert.ToInt32(view[0]) + Convert.ToInt32(view[1]);  

    此更新会更新至dt,最终反映到gridview2上。

使用XtraGrid自定义列计算 z

标签:

原文地址:http://www.cnblogs.com/zeroone/p/4311248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!