GridControl对应标准WinForm里的GridView,相当于是一个控件,里面包含多个GridView也可以放其它的控件

禁止修改
gridView1.OptionsBehavior.Editable = false;

一、

去掉"Drag a column header here to group by that column"一栏

gridView1.OptionsView.ShowGroupPanel = false;

只想隐藏这句话,保留这个头部,设置Appearance下的GroupPanelText为" "

二、Devexpress GridControl切换数据源

gridControl1.DataSource = dt1;

(gridControl1.DefaultView as GridView).Columns.Clear();//切换前需要先把列清空了。

gridControl1.DataSource = dt2;

(gridControl1.DefaultView as GridView).PopulateColumns();

红色部分取一种写法即可。

三、选中的行、值

int selectRow = gridView1.GetSelectedRows()[0];

//1 需要知道列名

string id = this.gridView1.GetRowCellValue(selectRow, "id").ToString();

//2 获取焦点值

object selectValue = gridView1.GetFocusedValue();

四、显示搜索框

gridView1.OptionsFind.AlwaysVisible = true;

五、选中某一行

GridView.FocusedRowHandle =i;
GridView.SelectRow(i);

六:遍历GridView

for (int i = 0; i < gridView1.RowCount; i++)
{
       for (int j = 0; j < gridView1.Columns.Count; j++)
       {
             object val = gridView1.GetRowCellValue(i, gridView1.Columns[j]);
       }
}

七:单元格双击响应

需要先将gridview1.OptionsBehavior.Editable设为false,然后响应gridControl1_DoubleClick事件。

private void gridControl1_DoubleClick(object sender, EventArgs e)
        {
            MouseEventArgs arg = e as MouseEventArgs;
            if (arg == null)
                return;

GridHitInfo hitInfo = gridView1.CalcHitInfo(new Point(arg.X, arg.Y));//获取坐标点
            if (hitInfo.RowHandle >= 0)
            {
                DataRow row = gridView1.GetDataRow(hitInfo.RowHandle);
                _list.Clear();
                _list.Add(row[0].ToString());
                gisResoureMonControl1.SetSelectResource(_list);
            }           
        }

八、DevExpress gridcontrol如何分组显示

(1)、手动方式

1、添加分组项,Run Designer--Group Summary Items--Add,设置计算添加SummaryType:Count总计

2、设置显示格式

2.1 格式:{0},效果:显示分组的列标题,如:Order ID

2.2 格式:{1},效果:显示分组后的项,如:10248

3、效果如下:

(2)、代码

gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "分组1");  //添加分组1,如果不是count,则名称必须与字段名对应
            gridView1.GroupFormat = "{1} {2}";  //默认"{0}: [#image]{1} {2}"; 字段名称:数据 计数=?

gridView1.Columns["部门名称"].GroupIndex = 0;  //设置默认分组列

//分组列格式
            gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Average, "id", gridView1.Columns["id"]);
            gridView1.GroupSummary[1].DisplayFormat = "AVG={0:c}";

gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "姓名", gridView1.Columns["姓名"]);
           
((DevExpress.XtraGrid.GridSummaryItem)gridView1.GroupSummary[gridView1.GroupSummary.Count
- 1]).DisplayFormat = "小计:{0:N0}";

gridView1.ExpandAllGroups();

效果如下:

九 、C# devExpress GridControl 行中行 子行 多级行

  1.        DB db = new DB();
  2. DataSet ds = new System.Data.DataSet();
  3. SqlCommand comm2 = new SqlCommand(sql, db.getSqlConnection()); //db.getSqlConnection() 返回一个sqlConnection 对象
  4. SqlCommand comm3 = new SqlCommand(sql1, db.getSqlConnection());
  5. SqlCommand comm4 = new SqlCommand(sql2, db.getSqlConnection());
  6. SqlDataAdapter da2 = new SqlDataAdapter(comm2);
  7. SqlDataAdapter da3 = new SqlDataAdapter(comm3);
  8. SqlDataAdapter da4 = new SqlDataAdapter(comm3);
  9.  
  10. da2.Fill(ds,"emp");
  11. da3.Fill(ds,"job");
  12. da4.Fill(ds,"re");
  13.  
  14. this.treeListLookUpEdit1TreeList.DataSource = ds;
  15.  
  16. DataColumn parentColumn = ds.Tables["emp"].Columns["empNum"];
  17. DataColumn childColumn = ds.Tables["job"].Columns["empNum"];
  18. DataColumn secondChild = ds.Tables["re"].Columns["empNum"];
  19.  
  20. DataRelation relCustOrder;
  21. relCustOrder = new DataRelation("对应工作", parentColumn, childColumn);
  22. DataRelation job;
  23. job = new DataRelation("部门调整", childColumn, secondChild);
  24. ds.Relations.Add(relCustOrder);
  25. ds.Relations.Add(job);
  26. this.gridControl1.DataSource = ds.Tables["emp"];

十、隐藏从表列 (只能隐藏一级子表)

//隐藏子表(即从表)的列,获取主表的行展开事件

  1. private void gridView3_MasterRowExpanded(object sender, DevExpress.XtraGrid.Views.Grid.CustomMasterRowEventArgs e)
  2. {
  3.  
  4. //获取所点击行的从表对象    
  5. DevExpress.XtraGrid.Views.Grid.GridView childView= gridView3.GetDetailView(e.RowHandle, e.RelationIndex) as DevExpress.XtraGrid.Views.Grid.GridView;
  6. if (childView != null)
  7. {
  8. childView.Columns["MainId"].Visible = false;  //隐藏子表列
  9.  
  10. }
  11. }

十一、展开第一级子表

  1. for (int i = ; i < gridView1.RowCount - ; i++)
  2. {
  3. gridView1.SetMasterRowExpandedEx(i, -, true);
  4. }

十二、展开所有子表 及隐藏子表的列

  1. int m_RelationIndex = ;
  2. private void ExpandAllRows()
  3. {
  4. for (int masteViewRowIndex = ; masteViewRowIndex < ds.Tables["Table1"].Rows.Count; masteViewRowIndex++)
  5. {
  6. MainGridView.ExpandMasterRow(masteViewRowIndex, );
  7. ExpandChildRows(MainGridView, masteViewRowIndex);
  8. }
  9. }
  10.  
  11. private void ExpandChildRows(GridView gv, int rowIndex)
  12. {
  13. GridView currentChildGV = gv.GetDetailView(rowIndex, m_RelationIndex) as GridView;
  14. if (currentChildGV != null)
  15. {
  16. for (int childGVRowIndex = ; childGVRowIndex < currentChildGV.DataRowCount; childGVRowIndex++)
  17. {
  18. ExpandChildRows(currentChildGV, childGVRowIndex);
                //more 可以在此处隐藏子表的列
  19. }
  20. }
  21. else if (currentChildGV == null && gv.CanExpandMasterRowEx(rowIndex, m_RelationIndex))
  22. {
  23. gv.SetMasterRowExpandedEx(rowIndex, m_RelationIndex, true);
  24. ExpandChildRows(gv, rowIndex);
    //more 可以在此处隐藏子表的列
  25. }
  26. else if (currentChildGV == null && !gv.CanExpandMasterRowEx(rowIndex, m_RelationIndex))
  27. {
  28. return;
  29. }
  30. }

十三、GridControl切换数据源异常,提示 “无法将类型为“NameSpace.ClassName”的对象强制转换为类型“System.Data.DataRowView”。”

解决方法,在DataSource赋值前后加上BeginUpdate和EndUpdate

  1. mainGridControl1.BeginUpdate();
  2. mainGridControl1.DataSource = listProduct;
  3. mainGridControl1.EndUpdate();

参考

1 DEV控件GridControl常用属性设置

2 DevExpress gridcontrol如何分组显示

3 DevExpress gridcontrol gridView主从表折叠/展开显示

4 DevExpressControl中的GridControl展现主从表数据结构

DevExpress控件之GridControl、GridView的更多相关文章

  1. DevExpress控件的GridControl控件小结

    DevExpress控件的GridControl控件小结 (由于开始使用DevExpress控件了,所以要点滴的记录一下) 1.DevExpress控件组中的GridControl控件不能使横向滚动条 ...

  2. DevExpress控件的GridControl实现行多选

    最近用到DevExpress控件的GridControl控件,需要用到行多选的操作,在网上找的资料,自己总结一下. 先展示一下效果:

  3. Devexpress控件中gridcontrol Drag a column header here to group by that column 更换

    参照网站:http://documentation.devexpress.com/#WPF/DevExpressXpfGridDataViewBase_RuntimeLocalizationStrin ...

  4. DevExpress控件使用经验总结- GridView列表行号显示操作

    DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.本文主要介绍我在使用DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示一 ...

  5. DevExpress 控件中GridControl的使用

    近期开发用到了DevExpress系列的控件,GridControl是我用到的Dev系列控件最多的一个控件.现在先来总结一下: 首先先写一个简单的小例子来简单介绍一下GridControl的用法: 1 ...

  6. DevExpress控件使用之RichEditControl的使用

    原文:DevExpress控件使用之RichEditControl的使用 做Winform的,我们一般都知道,传统.NET界面有一个RichTextBox控件,这个是一个富文本控件,可以存储图片文字等 ...

  7. DevExpress控件GridControl中的布局详解 【转】

    DevExpress控件GridControl中的布局详解 [转] 2012-10-24 13:27:28|  分类: devexpress |  标签:devexpress  |举报|字号 订阅   ...

  8. DevExpress控件-- Gridcontrol合并表头

    写在前面的话: 在园子里逛了有一段时间了,一直想写点东西,但苦于自己的水平有限,生怕写出来的东西浪费了读者的时间.楼主有幸参加了公司DevExpress控件的培训,独乐乐不如众乐乐,特附上Demo以飨 ...

  9. DevExpress控件-GridControl根据条件改变单元格/行颜色--转载

    DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...

随机推荐

  1. Installing Wine 1.5: configure: error: Cannot build a 32-bit program, you need to install 32-bit development libraries(转载)

    Installing Wine 1.5: configure: error: Cannot build a 32-bit program, you need to install 32-bit dev ...

  2. SpringBoot Redis序列化配置

    Redis配置 #Redis spring.redis.host= spring.redis.port=6379 spring.redis.database=0 # Redis服务器连接密码(默认为空 ...

  3. 汕头市队赛 SRM 09 B 撕书

    B 撕书II-3 SRM 09 背景&&描述 琉璃手头有一黑一白两本魔法书,一本是<缟玛瑙的不在证明>,另一本是<白色相簿1.5>     传说同时打开这两本书 ...

  4. Promotion Counting(USACO)

    题目翻译: zxyer来到了一个神奇的公司工作,之所以神奇,是因为这个公司的员工的职位并不与他们的水平相称,有的职位极低的职员的经验非常丰富,而有些经理甚至老板都是个萌新.有一天,zxyer收到了老板 ...

  5. 【排序算法】java实现

    1.冒泡排序 最简单的排序实现,冒泡排序,是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止. //冒泡排序 private int[] bubbleSo ...

  6. Windows8 上用Ubuntu-Ubuntu启动SSH

    公司刚给配了一个电脑,华硕的超级本8个G的内存,很强大的了,但是系统是64位的windows 8,我用wubi.exe直接安装到系统上,但是开机启动的时候总是下面这个错误,去Ubuntu社区请教,结论 ...

  7. C#实时读取数据----局部页面刷新【转】

    I)现在刚开始学习C#,对一些基本的控件了解的不够,有个实时监控的系统,需要页面中的数据每5秒钟刷新一次, 要是每5秒钟页面全部的刷新,那页面根本就没法看了,对这个问题在CSDN上也专门开了帖子,问了 ...

  8. 使用webView的时候,出现Error loading page Domain:WebKitErrorDomain Error Code:101 Description: The URL can't be shown

    onShouldStartLoadWithRequest = (e) => {// Implement any custom loading logic here, don't forget t ...

  9. Codeforces 626F Group Projects (DP)

    题目链接  8VC Venture Cup 2016 - Elimination Round 题意  把$n$个物品分成若干组,每个组的代价为组内价值的极差,求所有组的代价之和不超过$k$的方案数. ...

  10. (转)在Unity3D的网络游戏中实现资源动态加载

    原文:http://zijan.iteye.com/blog/911102 用Unity3D制作基于web的网络游戏,不可避免的会用到一个技术-资源动态加载.比如想加载一个大场景的资源,不应该在游戏的 ...