彩票走势图

XtraGrid网格控件入门攻略之主从子表设计(附代码)

原创|其它|编辑:郝浩|2012-10-09 16:50:49.000|阅读 1428 次

概述:本文通过代码介绍了DevExpress XtraGrid网格控件的入门攻略——如何实现主从子表设计。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

主从子表的样式如下图:

XtraGrid网格控件入门攻略之主从子表设计(附代码)

后台代码:  

//录数窗口
public  DataSet  ds_jj(string hth,string dh2)
 
        {
 
            DataSet ds=newDataSet();//
 
            DataSet ds_scgjb = new DataSet();//主表
 
            DataSet ds_jjmx = new DataSet();//从表
 
 
 
            ds_scgjb = dal_scgj.GetItemsByHTDH(hth, dh2);
 
            ds_jjmx = dal_jjmx.GetItemsByHTDH(hth, dh2);


            ds.Tables.Add(ds_scgjb.Tables[0].Copy());
 
            ds.Tables.Add(ds_jjmx.Tables[0].Copy());
 
//主从字表约束字段:这里有三个约束字段
 
            DataColumn[] column3 =newDataColumn[] { ds.Tables["jj_gjb"].Columns["合同号"], ds.Tables["jj_gjb"].Columns["袋

号"], ds.Tables["jj_gjb"].Columns["工序代码"] };
 
            DataColumn[] column4 =newDataColumn[] { ds.Tables["jj_jjmx"].Columns["合同号"], ds.Tables["jj_jjmx"].Columns["袋

号"], ds.Tables["jj_jjmx"].Columns["工序代码"] };
 
//建立约束名
             if (ds.Relations.IndexOf("jjgz") < 0)
 
            {    ds.Relations.Add("jjgz", column3, column4);
 
            }
 
            return ds;
 
        }

重点设计在于:如何控制字表?

主表有个事件gridView1_MasterRowExpanded,可以扑着到子表,可以对字表进行外观设计:单元格的宽度,是否编辑,是否筛选,是否显示等等设置,还有子表的事件设计,例如: &nbsp;       

detailView.CellValueChanged += new

DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(this.detailView_CellValueChanged);

 再写委托的具体detailView_CellValueChanged事件内容。这样确实可以达到我们的想要的功能。

好象没问题了?

问题:我用代码gridView1.ExpandMasterRow(i)全部展开子表,哪个慢啊?急死人了。根本无法正常使用,十几条记录,用了3分钟时间才全部展开。

分析:原来每展开一个子表,gridView1_MasterRowExpanded就运行多少次,每个子表就都格式一下外观设计,果然费事,以上设计只适合单个打开子表的用途。

办法1:用数组性子表控制,还是不行

办法2,用自定义一个表,设置好外观,然后继承该表,也不行。

以上都是全部用代码控制的操作。最后一个办法:

办法3,可视化设计:
XtraGrid网格控件入门攻略之主从子表设计(附代码)

主表:gridView1,

从表::gridView2

在gridView2设置好外观,事件都写好,只要把DataSet的主表和子表如何关联起来加载进去,就一切OK.摸索了很久,才知道其中的奥妙,DataSet的主表和子表的约束名是”jjgz”,只要把”Level1”改成约束名”jjgz”,就OK了。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP