dev Gridcontrol控件属性部分
XtraGrid的关键类就是:GridControl和GridView。GridControl本身不显示数据,数据都是显示在GridView/CardView/XXXXView中。GridControl是各种View的容器。所以要控制显示,要从GridView这些类入手。关于GridControl与GridView的关系,我不说了。下面给出一段代码。实际使用中常用到。
public Form2()
{
InitializeComponent();
//不显示内置的导航条。
gc1.UseEmbeddedNavigator = false;
//不显示分组的面板
gv1.OptionsView.ShowGroupPanel = false;
gv2.OptionsView.ShowGroupPanel = false;
//自动改变行高适应内容
gv1.OptionsView.RowAutoHeight = true;
gv2.OptionsView.RowAutoHeight = true;
//允许自动合并单元格
gv1.OptionsView.AllowCellMerge = true;
//如果主从表中,没有找到从表内容也要显示(默认是不显示的)
gv1.OptionsDetail.AllowExpandEmptyDetails = true;
//显示自动筛选行(效果跟Excel的自动筛选差不多)
gv2.OptionsView.ShowAutoFilterRow = true;
//使得GridView不能编辑
gv1.OptionsBehavior.Editable = false;
gv2.OptionsBehavior.Editable = false;
//内置编辑器显示的模式
gv1.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.Click;
//主从表显示的功能是否可用
//gv1.OptionsDetail.EnableMasterViewMode = false;
//如果显示了主从表,每点开个加号,就会显示一个Tabs,里面往往显示了两个面板。
//事实上没必要这样干的。一般选择关闭。关闭的对象是主GridView的此项属性。
gv1.OptionsDetail.ShowDetailTabs = false;
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnOk_Click(object sender, EventArgs e)
{
//设置连接字符串
DbHelperSQL.ConnectionString = DbHelperSQL.CreateConnectionString(@"BUDDHAS\SQLEXPRESS", "sa", "00000", "RTDMES");
DataSet ds = new DataSet();
//父GridView的数据
string sql = "select sc_prno,sc_prna from mespb04h";
DbHelperSQL.QueryD(sql,ds,"main");
//子GridView的数据
sql = "select pa_name,pa_no,sc_prno from mespb09h";
DbHelperSQL.QueryD(sql,ds,"son");
//这个是显示主从表的关键,一、GridControl通过检查DataSet.Relations的内容来分析数据
//二、关键名必须与设计GridView的层级关系的level name相同,否则,结果在意料之外。
DataRelation relation = new DataRelation("aa",
ds.Tables["main"].Columns["sc_prno"],
ds.Tables["son"].Columns["sc_prno"]);
ds.Relations.Add(relation);
//这也是一个关键,不能直接设为:ds,必须指明到表。
gc1.DataSource = ds.Tables["main"];
}
上面的代码是显示一个主从表。显示主从表有些技巧。文档中还没有说出来,俺摸索了一个晚上才搞出来。像上面看到的,事实上很简单。
上面DbHelperSQL是我从CodeMatic 2.0中搞出来的,我自己修改了一下。
上面代码的效果图如下:


对于GridView,我有两大疑问:
一、显示主从表,这个解决了。
二、分组显示,这是报表中经常要用到的,GridView的解决方案很简捷,只需将相应列的GroupIndex属性设一下就成了。 ================================================================================================ 为XtraGrid的GridView加行号。示例代码如下: //设置行指示器的宽度(行指示器就是最左边那列什么都不显示的列)
//默认情况下,如果要在里面显示行号的话,宽度会不足,数字显示不清晰
//所以要改一下宽度
gv1.IndicatorWidth = 20;
private void gv1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
{
e.Info.DisplayText = (e.RowHandle + 1).ToString().Trim();
}
}
效果图如下:

常用代码:
//添加分组统计字段
gridView1.GroupSummary.Add(SummaryItemType.Count, "Product Name", gridView1.Columns["Product Name"]);
gridView1.GroupSummary.Add(SummaryItemType.Average, "Unit Price", gridView1.Columns["Unit Price"]);
//设置分组统计字段的显示格式
((GridSummaryItem)gridView1.GroupSummary[gridView1.GroupSummary.Count - 1]).DisplayFormat = "AVR={0:c}";
//设置分组字段
gridView1.Columns["Discontinued"].GroupIndex = 0;
//打开所有分组
gridView1.ExpandAllGroups();
//为控件画边框
ControlPaint.DrawBorder3D(e.Graphics,
r,
(e.Info.State == DevExpress.Utils.Drawing.ObjectState.Pressed ? Border3DStyle.SunkenOuter
: Border3DStyle.RaisedInner));
//焦点单元格的列
gridview1.FocusedColumn
//焦点单元格所在行的行号
gridview1.FocusedRowHandle
//焦点单元格的值
gridview1.FocusedValue
//指定单元格显示的字符串值
gridview1.GetRowCellDisplayText(int rowHandler,string feildName)
//指定单元格的值
gridview1.GetRowCellValue(int rowHandler,string feildName)
//设置焦点单元格所在行指定列的值
gridview1.SetFocusedRowCellValue(GridColumn col,object value)
//设置焦点单元格的值
gridview1.SetFocusedValue(object value)
//设置指定单元格的值
//有了这个函数,就可以手工创建行了。
gridview1.SetRowCellValue(int rowHandler,string feildName,object value)
gridview1.SetRowCellValue(int rowHandler,GridColumn col,object value)
//添加新行的方法
gv1.AddNewRow();
foreach (GridColumn col in gv1.Columns)
{
//用RowCount-1的办法是不行的
//gv1.SetRowCellValue(gv1.RowCount-1, col, "aaaaa");
gv1.SetRowCellValue(gv1.FocusedRowHandle, col, "aaaaa");
}
gv1.UpdateCurrentRow();
//根据绑定的数据源自动产生列
gv1.PopulateColumns();
//为列添加下拉列表(加其他类型如日期、UpDown同理)
RepositoryItemLookUpEdit ri = new RepositoryItemLookUpEdit();
//ri.PopupWidth = 200;
ri.DisplayMember = "sc_prna";
ri.ValueMember = "sc_prno";
DataTable dt1 = DbHelperSQL.QueryT("select sc_prno,sc_prna from mespb04h");
ri.DataSource = dt1;
gv1.Columns["sc_prno"].ColumnEdit = ri;
dev Gridcontrol控件属性部分的更多相关文章
- DEV GridControl 控件属性大全
Devpress.XtraGrid.GridControl.GridView 属性 说明 Options OptionsBehavior 视图的行为选项 AllowIncrementalSearch ...
- DEV GridControl控件使用(CheckBox全选、操作按钮、事件处理,获取值)
1.GridControl控件使用 (1)绑定数据源 //绑定DataTable gridControl1.DataSource = DbHelper.ExecuteDataTable("S ...
- 设置DevExpress GridControl控件时间列显示时、分、秒样式
如题,如果Dev GridControl控件绑定DataTable数据源时,DataTable中的某一列为Date类型时,GridControl默认显示样式只显示当前日期,并不会将时.分.秒显示出来. ...
- Dev的GridControl控件选择框的使用
先介绍环境:VS2010,dev11.2 想要达到的效果:,当单击某一行时前面的选择框选中. 在网上找了不少,但是感觉跟我想的做法很不一样(有很多都是再另外添加一个什么CheckBox,这个我在Dev ...
- 玩转控件:对Dev中GridControl控件的封装和扩展
又是一年清明节至,细雨绵绵犹如泪光,树叶随风摆动.... 转眼间,一年又过去了三分之一,疫情的严峻让不少企业就跟清明时节的树叶一样,摇摇欲坠.裁员的裁员,降薪的降薪,996的996~~说起来都是泪,以 ...
- 玩转控件:对Dev的GridControl控件扩展
缘由 一切实现来源于需求,目的在于不盲目造轮子,有小伙伴儿在看了<玩转控件:对Dev中GridControl控件的封装和扩展>文章后,私信作者说,因公司业务逻辑比较复杂,展示字段比较多,尤 ...
- GridControl控件的数据显示的样式控制(转)
如上两图所示,Dev列表控件GridControl默认的格式并没有渐变变色效果,显示的日期数据,也是“yyyy-MM-dd”的格式,而非“yyyy-MM-dd HH:mm:ss”即使对于后面有长格式的 ...
- 2016.1.19 DEV Express控件GirdControl使用
103.GridControl中添加Button RunDesigner,添加一列,设置对应字段FiledName,ColumnEdit选择ButtonEdit,此时默认风格像下拉框,需调整属性: 在 ...
- DevExpress之GridControl控件小知识
DevExpress之GridControl控件小知识 一.当代码中的DataTable中有建数据关系时,DevExpress 的 GridControl 会自动增加一个子视图 .列名也就是子表的字段 ...
随机推荐
- Java 读书笔记 (八) 修饰符
Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 访问控制修饰符 default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符.使用对象.类.接口.变量.方法. ...
- Java 读书笔记 (四) 常量
常量在程序运行时不能被修改. 在Java中使用final 关键字来修饰常量 ,声明方式和变量类似: final double PI=3.1415927 常量名也可以用小写,但为了便于识别,通常使用大写 ...
- 按照excel文档中的内容在当前cad图纸中自动排布实体
本例实现的主要功能是读取excel文档中的内容,其次是将按照读取的信息在当前cad图纸中添加相应的实体.下面先介绍实现代码: CString excelPath; //外部excel文档的地址 Upd ...
- 【二分+最小树形图】UVA11865 比赛网络
Description During 2009 and 2010 ICPC world finals, the contest was webcasted via world wide web. Se ...
- Luogu_2597_[ZJOI2012]灾难 倍增lca + 构造
Luogu_2597_[ZJOI2012]灾难 倍增lca + 构造 题意: 我们用一种叫做食物网的有向图来描述生物之间的关系:一个食物网有N个点,代表N种生物,如果生物x可以吃生物y,那么从y向x连 ...
- 实践 Network Policy - 每天5分钟玩转 Docker 容器技术(172)
为了演示 Network Policy,我们先部署一个 httpd 应用,其配置文件 httpd.yaml 为: httpd 有三个副本,通过 NodePort 类型的 Service 对外提供服务. ...
- 【爆料】-《西澳大学毕业证书》UWA一模一样原件
☞西澳大学毕业证书[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&a ...
- jdbc 增删改查以及遇见的 数据库报错Can't get hostname for your address如何解决
最近开始复习以前学过的JDBC今天肝了一晚上 来睡睡回笼觉,长话短说 我们现在开始. 我们先写一个获取数据库连接的jdbc封装类 以后可以用 如果不是maven环境的话在src文件下新建一个db.pr ...
- 招商信诺生产jvm 配置和自己的eclipse jdk配置
command=/usr/bin/java -jar -Xms512m -Xmx512m -Xss256K -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+Us ...
- 使用ESMap的地图平台开发三维地图
本文简单的介绍使用ESmap的SDK开发(DIY自己地图的)一个地图的过程.若有不足,欢迎指正. 一.创建地图 只需四步,从无到有,在浏览器中创建一个自己的三维地图,炫酷到爆! 第一步:引入ESM ...