标签:
绑定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]; // 指定数据源 } }
DataRowView view = e.Row as DataRowView; view[3] = Convert.ToInt32(view[0]) + Convert.ToInt32(view[1]);
此更新会更新至dt,最终反映到gridview2上。
标签:
原文地址:http://www.cnblogs.com/zeroone/p/4311248.html