用嵌套List实现DataGrid的主从表显示
//首先构造嵌套List,也就是一个list在另一个list中充当成员
//如:referModels 在res中充当成员
var res = totalAffectedMedels.Select(c => new
{
TIME_SLICE_ID = c.curModel.TIME_SLICE_ID,
referModels = c.referModels == null ? null : c.referModels.Select(n => new
{
数据类型 = n.TABLE_INFO,
名称 = n.NAME,
识别 = n.DESIGNATOR,
数量 = n.mCount
}).ToList(),
任务操作 = c.operType == CmmDb.DbOperation.Add ? "添加" :"",
数据类型 = c.curModel.TABLE_INFO,
名称 = c.curModel.NAME,
识别 = c.curModel.DESIGNATOR
}).ToList();
//确保GridControl的optionsDetail下的EnableMasterViewMode=true,该属性默认就是true
//最简单的方法直接将此list绑定到gdc的DataSource就能自动出现主从界面,不用在界面上做任何设置,如
//要显示隐藏哪些列完全通过上面的自定义List实现
//子表的标签会自动为referModels
CmmFrm.BestFitGridViewListWidth(gdc_TaskCancel, res, 1);
//如果要仅有个别列要隐藏,添加绑定事件MasterRowExpanded,在点击行头的+时触发
private void gdv_TaskCancel_MasterRowExpanded(object sender, DevExpress.XtraGrid.Views.Grid.CustomMasterRowEventArgs e)
{
GridView gridViewMaster = sender as GridView;
GridView gridViewDetail = gridViewMaster.GetDetailView(e.RowHandle, e.RelationIndex) as GridView;
if (gridViewDetail.IsNotNull())
{
gridViewDetail.BeginUpdate();
gridViewDetail.Columns["TIME_SLICE_ID"].Visible = false;
gridViewDetail.Columns["TIME_SLICE_ID"].OptionsColumn.ShowInCustomizationForm = false;
gridViewDetail.EndUpdate();
}
}
//一般的做法是在gdv中添加Level视图,点击右键修改视图名称为子List名称,referModels,可绑定子表。所有子表列都能自动显示。
//也可以在界面中添加字段
关于子表事件
子表事件无法直接从界面添加,即使设置了子表界面,只能在主表展开时添加自定义事件,可解决点击子表时获取父表展开行
private void gdv_refer_MasterRowExpanded(object sender, DevExpress.XtraGrid.Views.Grid.CustomMasterRowEventArgs e)
{
if (e.RowHandle >= 0)
{
GridView detailView = gdv_refer.GetDetailView(e.RowHandle, 0) as GridView;
detailView.RowCellClick -= GridView_RowCellClick;
detailView.RowCellClick += GridView_RowCellClick;
}
}
实现:
private void GridView_RowCellClick(object sender, RowCellClickEventArgs e)
{
//获取子表当前点击行所在的父表行
gdv_refer.FocusedRowHandle = gdv_refer.LocateByValue("DETAIL_ID", (sender as GridView).GetFocusedDataRow().GetParentRow("Files")["DETAIL_ID"].ToString());
}
用嵌套List实现DataGrid的主从表显示的更多相关文章
- 在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列?
在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列?(效果图如下:): 在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列(效果图) 实现该 ...
- BPM使用ligerUI实现主从表显示
先看一下效果图: 界面有待美化,嘿嘿,下面说一下实现过程,当然,我的代码可能不对,就比如后台给前端返回JSON对象,应该包括状态和消息和数据,我这里直接给返回了JSON对象,所以,如果有大神,您知道怎 ...
- DevExpress gridcontrol gridView主从表折叠/展开显示
在使用报表的时候,有很多需要主从表一起显示,从表不需要另外弹窗显示明细,反而直接显示在主表下方.如图所示: 第一次做这个功能,主从表显示,从表列隐藏,从表单元格点击事件这三个功能点花费了很多时间,在网 ...
- cxGrid主从表删除从表记录的困惑
cxgrid主从表显示方便直观. varADetailDC: TcxGridDataController;AView: TcxCustomGridTableView; with cxgrdbndtbl ...
- easyUI dataGrid主从表点击展开问题
昨天在公司写代码遇到了一个问题,就是在用easyUI做主从表的时候在查询之后点击展开的时候不能再次展开了.先说一下主从表我也是第一次用 效果如下图: 然后点击前面的小加号出现以下效果: 然而遇到了一个 ...
- 【mysql】 mybatis实现 主从表 left join 1:n 一对多 分页查询 主表从表都有查询条件 【mybatis】count 统计+JSON查询
mybatis实现 主从表 left join 1:n 一对多 分页查询 主表从表都有查询条件+count 需求: ======================================= ...
- EF里单个实体的增查改删以及主从表关联数据的各种增删 改查
本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(根据主表找从表数据.根据从表 ...
- 代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理.在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常 ...
- Winform开发框架之单据窗体生成(主从表,流水单号)
源码地址:https://github.com/GarsonZhang/GZFramework.ShareDemo 前言 1.在开始本节前请先重置代码为 chapter-03-start 懒人地址:h ...
随机推荐
- 产生num个不重复的随机数组
createDiffRandom : function (from,to,num) { // 产生num个不重复的随机数组 var arr=[],json={}; // 随机数数组 , 标记json对 ...
- android代码常识
查看当前android代码版本号:build/core/version_defaults.mk---->查找platform_version android源码在线阅读网址 http://and ...
- nodejs调用百度统计api摆脱人肉数据统计
var http = require("https"); var url = require('url'); var postData = JSON.stringify( { &q ...
- NGUI动态给EventDelegate加参数
示例代码如下: 响应的函数声明为: void OnChange(UIToggle toggle) { if(toggle.value) { // do something } } 添加响应的代码如 ...
- save the transient instance before flushing错误解决办法 【待完善】
近日在项目中遇到以下错误,着实郁闷了一把: org.hibernate.TransientObjectException: object references an unsaved transient ...
- python笔记-13 mysql与sqlalchemy
一.RDBMS relational database management system 关系型数据库引入 1.数据库的意义 更有效和合理的存储读取数据的一种方式 关系模型基础上的数据库 -> ...
- 开始学习jQuery
一 jQuery是什么? 1. jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. 2.jQuery是继prototype之后又一个 ...
- python模块--logging
一.logging模块的简单应用 import logging logging.debug('debug message') logging.info('ingo message') logging. ...
- elixir jenkins 集成构建方式配置
备注: 主要问题是环境变量配置的问题,解决方法是使用软连接进行解决 1. 下载软件包 wget https://github.com/elixir-lang/elixir/releases/ ...
- flash无法导入mp3文件
用全能音频转换通转换下,一切采用默认即可,点击下载地址 这个软件真心好用. 把mp3拖入其中,点击批量转换,参数默认,即可.