主从表XtarGrid设计

来源:互联网 发布:计算机技术基础vb 编辑:程序博客网 时间:2024/06/10 01:21

   
  
    要实现的效果如上图所示,其实主从表是同一条记录,但是客户名称、地址需要独立的显示出来。所以实现方法如下:
设计的主表为GridView,从表为CardView
XtraGrod主要设置的项有
    MainView下的OptionDetail
        AllowZoomDetail:是否允许放大子表。界面上表现是在记录最后面有个放大镜
        ShowDetailTabs:是否现在子表Tab,界面上表现将子表的记录都显示在一个Tab页里面,而且有边框,Title设置
        EnableMasterViewMode:是否可用主从表模式。如果设为false,子表不会显示
    CardView下的设置
        CardInterval:各个卡片的间距
        CardWidth:卡片宽度,如果在属性里面设置。
        DetailHeight:卡片高度,最小只能设置到50。所以要设置比50更小的值的话,可以通过代码赋值
        DetailTabHeaderLocation:卡片标题位置
        ViewCaption:Tab标题,如果没有设置,默认取该子表的Level的名字
        CardCaptionFormat:卡片Caption
       
        对OptionView下的属性设置
             ShowCardCaption:是否显示卡片Caption
             ShowFieldCaptions:是否显示列名
             ShowHorzScollBar:是否显示水平滚动条
             ShowQuickCustomizeButton:是否显示Customize按钮
            
绑定代码
    //以下代码假定ds数据集合中已经存在主从表数据
    //添加主从表关系,其中关系名“Level1”跟子表的Level名要一致
    //如果是单个关键字,方法如下
    ds.Relations.Add("Level1", ds.Tables[0].Columns["CECODE"], ds.Tables[1].Columns["CECODE"]);
    //如果是复合关键字,方法如下
    DataColumn[] parentCoumns ={ ds.Tables[0].Columns["CECODE"], ds.Tables[0].Columns["CECSCD"] };
    DataColumn[] childCoumns ={ ds.Tables[1].Columns["CECODE"], ds.Tables[1].Columns["CECSCD"] };
    ds.Relations.Add("Level1", parentCoumns, childCoumns);
   
    //绑定数据
    DataViewManager dvManager = new DataViewManager(ds);
    DataView dv = dvManager.CreateDataView(ds.Tables[0]);
    xtraGrid1.DataSource = dv;
   
展开子表代码
    int dataRowCount = gridView1.DataRowCount;
    for (int rHandle = 0; rHandle < dataRowCount; rHandle++)
    {
        gridView1.SetMasterRowExpanded(rHandle, true);
    }

 

 
原创粉丝点击