dataGrid 展现 master/detail 数据
2005-03-24 15:00 Bluetooth 阅读(697) 评论(0) 编辑 收藏 举报 当然,使用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");
避免使用查询再绑定的算法的低劣。
这里还需要再增加一句,把父dataGrid中显示的节点去掉。
this.dataGrid1.AllowNavigation = false;
本文参考了美国的一个大师的东东,他是讲asp.net中的master/detail中的展示,非常精彩。
同理,如果你需要绑定三个或四个更多的数据,只需定义相应的dataSet1.Relations.add(),同样实现几个表的同步!