绑定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(, "class1");
masterTable.Rows.Add(, "class2");
masterTable.Rows.Add(, "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(, , "student1", "age1");
detailTable.Rows.Add(, , "student2", "age2");
detailTable.Rows.Add(, , "student3", "age3");
detailTable.Rows.Add(, , "student4", "age4");
detailTable.Rows.Add(, , "student5", "age5");
detailTable.Rows.Add(, , "student6", "age6");
detailTable.Rows.Add(, , "student7", "age7");
detailTable.Rows.Add(, , "student8", "age8"); using (DataSet ds = new DataSet())
{
ds.Tables.AddRange(new DataTable[] { masterTable.Copy(), detailTable.Copy() });
// 创建表关系
DataRelation relation = new DataRelation("detailTable", ds.Tables[].Columns[], ds.Tables[].Columns[], false);
ds.Relations.Add(relation); // 添加
gridControl1.DataSource = ds.Tables[]; // 指定数据源
}
}
  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[] = Convert.ToInt32(view[]) + Convert.ToInt32(view[]);

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

使用XtraGrid自定义列计算 z的更多相关文章

  1. 使用XtraGrid自定义列计算1 z

    Devexpress控件集提供的DataGrid控件,在功能和界面样式上都完爆WinForm的DataGridView控件,以前需要在 DataGridView控件上进行某列的统计,需要在GridVi ...

  2. DevExpress 之 GridControl 自定义列

    Ø  前言 DevExpress 控件大家应该都有所了解,使用这个框架实现B/S或C/S的,都是非常出色的.本文主要讨论下 GridControl 中如何[自定义列]或[计算列],可使用以下两种方法实 ...

  3. 在【自定义列】中编辑简单运算公式(Power Query 之 M 语言)

    数据源: "品名"."数量"."单价"三列 目标: 计算销售单价(单价*1.2) 解决方案: 在[自定义列]中使用乘法四则运算 步骤: 打开 ...

  4. EasyUI Datagrid 自定义列、Foolter及单元格编辑

    1:自定义列,包括 Group var head1Array = []; head1Array.push({ field: 'Id', title: 'xxxx', rowspan: 2 }); he ...

  5. DevExpress ASP.NET 使用经验谈(8)-ASPxGridView自定义列和基本事件

    为演示本节示例,我们在原来Users表增加[性别Gender].[兴趣爱好Hobbies],[CreateTime创建时间],[ModifyTime]修改时间这4个字段, ALTER TABLE [d ...

  6. Dos.ORM Select查询 自定义列

    自定义列 .Select( p = >new{ test = p.id}) // 同sql 列名 as 新列名 如下是 自己在写代码的例子,查询,分页,where条件,排序 var where ...

  7. 后台生成EXCEL文档,自定义列

    后台生成EXCEL文档,自定义列 //response输出流处理 //设置编码.类型.文件名 getResponse().reset(); getResponse().setCharacterEnco ...

  8. NOPI实现导入导出泛型List,支持自定义列

    概述 业务上需要自定义列的Excel的导入导出,在网上看了好多资料,很多都是有Bug而且都是支持Excel和DataTable的转换,所以自己总结了一下,应用.NET平台上的NPOI封装了支持自定义列 ...

  9. 关于datatables自适应以及自定义列宽度的总结

    table-layout:fixed;可以自定义列的宽度 <div id="bizhi" style="width:100%;height: 85%;overflo ...

随机推荐

  1. RSS列表

    博客园 http://feed.cnblogs.com/blog/sitehome/rss

  2. 下载linaro android 4.4.2 for panda4460

    $ export MANIFEST_REPO=git://android.git.linaro.org/platform/manifest.git$ export MANIFEST_BRANCH=li ...

  3. Shell脚本完成hadoop的集群安装

    虽然整体实现的自动安装,但还是有很多需要完善的地方,比如说: 1. 代码目前只能在root权限下运行,否则会出错,这方面需要加权限判断: 2.另外可以增加几个函数,减少代码冗余: 3.还有一些判断不够 ...

  4. HDU 3072 SCC Intelligence System

    给出一个带权有向图,要使整个图连通.SCC中的点之间花费为0,所以就先缩点,然后缩点后两点之间的权值为最小边的权值,把这些权值累加起来就是答案. #include <iostream> # ...

  5. Selenium WebDriver-打开3个网址截图,文件夹用年月日命名,图片用当前时分秒命名

    import os import os.path import time from selenium import webdriver urls=["http://www.baidu.com ...

  6. 【LeetCode】Binary Tree Level Order Traversal(二叉树的层次遍历)

    这道题是LeetCode里的第102道题. 题目要求: 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如: 给定二叉树: [3,9,20,null,null,15 ...

  7. hdu图论题目分类

    =============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...

  8. 九度oj 题目1079:手机键盘

    题目描述: 按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次. 如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,k ...

  9. getBoundingClientRect说明

    getBoundingClientRect用于获取某个元素相对于视窗的位置集合. 1.语法:这个方法没有参数. rectObject = object.getBoundingClientRect() ...

  10. Agile工作方法

    [工具] Slack https://slack.com/ 看板 https://trello.com/ 其他TBC