惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
云风的 BLOG
云风的 BLOG
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
GbyAI
GbyAI
C
Check Point Blog
M
MIT News - Artificial intelligence
T
The Blog of Author Tim Ferriss
Jina AI
Jina AI
博客园 - 【当耐特】
U
Unit 42
月光博客
月光博客
腾讯CDC
Y
Y Combinator Blog
小众软件
小众软件
博客园_首页
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
The GitHub Blog
The GitHub Blog
博客园 - 聂微东
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
T
Tailwind CSS Blog

博客园 - 芸

Xtragrid的图片显示 N×N矩阵螺旋打印输出 数组int[],int[,]的区别 转载 使用ActiveReport for .net 进行报表开发 oracle数据库之间的数据拷贝 VS2003 水晶报表服务器端部署 SQL操作全集 合并多行的字符串—oarcle(转) 在网页上使用户按Enter键自动跳到下一控件,并禁止使用鼠标右键和其他快捷键的HTC控件 字符串样式的格式化 oracle 存储过程的基本语法 2007年终总结 JavaScript面向对象 dotNet常用快捷键 最美的十大经典爱情句子 自定义控件脚本校验 在DataGrid中使用单选框 ActiveReport子报表 正则表达式收藏
主从表XtarGrid设计
· 2007-11-20 · via 博客园 - 芸

   

   
  
    要实现的效果如上图所示,其实主从表是同一条记录,但是客户名称、地址需要独立的显示出来。所以实现方法如下:
设计的主表为GridView,从表为CardView
XtraGrod主要设置的项有
    MainView下的OptionDetail
        AllowZoomDetail:是否允许放大子表。界面上表现是在记录最后面有个放大镜
        ShowDetailTabs:是否现在子表Tab,界面上表现将子表的记录都显示在一个Tab页里面,而且有边框,Title设置
        EnableMasterViewMode:是否可用主从表模式。如果设为false,子表不会显示
    CardView下的设置
        CardInterval:各个卡片的间距
        CardWidth:卡片宽度,如果在属性里面设置。
        DetailHeight:卡片高度,最小只能设置到50。所以要设置比50更小的值的话,可以通过代码赋值
        DetailTabHeaderLocation:卡片标题位置
        ViewCaptionTab标题,如果没有设置,默认取该子表的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);
    }