代码改变世界

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");
  程序就不演示了,可以这样说,效果是Very Good。而且完全实现了数据的同步。以及两个dataGrid的同步。
  避免使用查询再绑定的算法的低劣。
 这里还需要再增加一句,把父dataGrid中显示的节点去掉。
this.dataGrid1.AllowNavigation = false;
   ok,结束。
   本文参考了美国的一个大师的东东,他是讲asp.net中的master/detail中的展示,非常精彩。
   同理,如果你需要绑定三个或四个更多的数据,只需定义相应的dataSet1.Relations.add(),同样实现几个表的同步!