zoukankan      html  css  js  c++  java
  • 使用XtraGrid自定义列计算 z

    绑定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上。

  • 相关阅读:
    IBM WebSphere MQ 7.5基本用法
    IBM WebSphere MQ介绍安装以及配置服务详解
    Windows平台上使用Github搭建Git服务器的图文教程
    Git安装和TortoiseGit详细使用教程【基础篇】
    DOS命令之at命令详解
    单元测试数据库 -- 使用事物回滚测试
    VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中
    SQL2008中Merge的用法
    VS版本号定义、规则和相关的Visual Studio插件
    JSON字符串互相转换的三种方式和性能比较
  • 原文地址:https://www.cnblogs.com/zeroone/p/4311248.html
Copyright © 2011-2022 走看看