绑定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. STM8S与IAR程序常用错误

    一.IAR中的重复定义问题 在自己写头文件时,要记得将常量定义在.c文件中,如果将常量定义在.h文件中,当在main.c或者其他地方包含该头文件时,会将头文件中的常量定义包 含到main.c中,同时, ...

  2. Django Form one

    前戏: FromData:三种方式获取FromData 1. 创建一个FromData 的对象,然后再用append 的方法追个添加键值对 var formdata = new FormData(); ...

  3. 使用 Scene 类在 XNA 中创建不同的场景(八)

    平方已经开发了一些 Windows Phone 上的一些游戏,算不上什么技术大牛.在这里分享一下经验,仅为了和各位朋友交流经验.平方会逐步将自己编写的类上传到托管项目中,没有什么好名字,就叫 WPXN ...

  4. python + selenium - selenium常用元素定位

    1. Chrome定位工具 打开Chrome浏览器,按F12会弹出开发者工具选项,选择Elements: 1)鼠标点击最左边箭头 2)鼠标滑动到页面中你要操作的元素,单击一下 3)对应的html元素内 ...

  5. 零基础学 JavaScript 全彩版 明日科技 编著

    第1篇 基础知识 第1章 JavaScript简介 1.1 JavaScript简述 1.2 WebStorm的下载与安装 1.3 JavaScript在HTML中的使用 1.3.1 在页面中直接嵌入 ...

  6. Facebook App 的头文件会有更多的收获

    最近在看一些 App 架构相关的文章,也看了 Facebook 分享的两个不同时期的架构(2013 和 2014),于是就想一窥 Facebook App 的头文件,看看会不会有更多的收获,确实有,还 ...

  7. 【转】[重构]Primitive Obsession

    http://blog.csdn.net/wxr0323/article/details/7913950 Primitive Obsession(基本类型偏执) 偏执这个词实在是有点难懂.百度百科传送 ...

  8. 算法复习——状压dp

    状压dp的核心在于,当我们不能通过表现单一的对象的状态来达到dp的最优子结构和无后效性原则时,我们可能保存多个元素的有关信息··这时候利用2进制的01来表示每个元素相关状态并将其压缩成2进制数就可以达 ...

  9. JavaWeb学习总结(十七)——JSP中的九个内置对象(转)

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  10. Best Coder Lotus and Characters

     Lotus and Characters  问题描述 Lotus有nn种字母,给出每种字母的价值以及每种字母的个数限制,她想构造一个任意长度的串. 定义串的价值为:第1位字母的价值*1+第2位字母的 ...