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

  • 相关阅读:
    Xfire的aegis绑定方式配置小结
    ExtJS入门
    InstallScript 中数组的使用
    [转]手把手教你用C#(.NET)打包应用程序(安装程序)【卸载模块已添加】
    [VB]全局钩子
    VB.NET 反射机制取得当前函数名 类名等
    [.Net][转]dotNet取得各种系统信息
    [VB]清空Clipboard
    [VB]取得本机的网络连接(类似netstat 命令)
    [InstallShield] 安装时添加一个进度对话框Dialog
  • 原文地址:https://www.cnblogs.com/zeroone/p/4311248.html
Copyright © 2011-2022 走看看