当然,使用dateSet里面将两张数据表添加进去,然后从工具集里面拖出一个关系,余下的按照提示就可了。
再然后,this.dataGrid1.dataSource=this.dataSet1; 这样就可以了。
但是,从观看的角度看,这样十分困难,你要不停的点那个Node,而且还要返回上一页。我很赞同使用两个dataGrid1来分别展示
master和detail。程序也很简单,但效果却好的出乎意料,下面是程序。
this
.dataSet1.Clear();
this
.sqlDataAdapter2.Fill(
this
.dataSet1,
"
enterform
"
);
this
.sqlDataAdapter1.Fill(
this
.dataSet1,
"
DanViewDetail
"
);
this
.dataSet1.Relations.Add(
"
masterdetail
"
,dataSet1.Tables[
"
enterform
"
].Columns[
"
formcode
"
],
dataSet1.Tables[
"
DanViewDetail
"
].Columns[
"
formcode
"
]);
this
.dataGrid1.SetDataBinding(dataSet1,
"
enterform
"
);
this
.dataGrid2.SetDataBinding(dataSet1,
"
enterform.masterdetail
"
);
程序就不演示了,可以这样说,效果是Very Good。而且完全实现了数据的同步。以及两个dataGrid的同步。
避免使用查询再绑定的算法的低劣。
这里还需要再增加一句,把父dataGrid中显示的节点去掉。
this
.dataGrid1.AllowNavigation
=
false
;
ok,结束。
本文参考了美国的一个大师的东东,他是讲asp.net中的master/detail中的展示,非常精彩。
同理,如果你需要绑定三个或四个更多的数据,只需定义相应的dataSet1.Relations.add(),同样实现几个表的同步!