场景

Winform控件-DevExpress18下载安装注册以及在VS中使用:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243

在上面搭建好DevExpress的环境后,要使用其GridControl控件。

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载

实现

首先在窗体中拖拽一个GridControl

然后在窗体的Load时事件中对其进行添加列和样式设置

  1. private void FrmSearch_Load(object sender, EventArgs e)
  2. {
  3. //设置GridControl样式
  4. Common.GridControl.GridControlHelper.SetStyles(this.gridControl1.MainView as DevExpress.XtraGrid.Views.Base.ColumnView);
  5. //订阅行点击事件
  6. this.gridView1.RowClick += gridView1_RowClick;
  7.  
  8. }

进入设置样式的方法

  1. public static void SetStyles(DevExpress.XtraGrid.Views.Base.ColumnView view)
  2. {
  3. if (view is DevExpress.XtraGrid.Views.Grid.GridView)
  4. {
  5. DevExpress.XtraGrid.Views.Grid.GridView gridView = view as DevExpress.XtraGrid.Views.Grid.GridView;
  6.  
  7. gridView.OptionsView.ShowGroupPanel = false; //隐藏最上面的GroupPanel
  8. gridView.OptionsView.ShowIndicator = false; //隐藏指示列
  9.  
  10. gridView.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; //设置焦点框为整行
  11. gridView.OptionsSelection.EnableAppearanceFocusedCell = false; //禁用单元格焦点
  12. gridView.OptionsSelection.EnableAppearanceFocusedRow = true; //启用整行焦点
  13. gridView.OptionsSelection.EnableAppearanceFocusedRow = true; //启用整行焦点
  14. gridView.OptionsSelection.EnableAppearanceHideSelection = false;
  15.  
  16. gridView.OptionsView.EnableAppearanceEvenRow = true; //启用偶数行背景色
  17. gridView.OptionsView.EnableAppearanceOddRow = true; //启用奇数行背景色
  18.  
  19. //gridView.Appearance.EvenRow.BackColor = System.Drawing.Color.FromArgb(150, 237, 243, 254); //设置偶数行背景色
  20. //gridView.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(150, 199, 237, 204); //设置奇数行背景色
  21. //gridView.Appearance.FocusedRow.BackColor = System.Drawing.Color.Red;
  22. //gridView.Appearance.SelectedRow.BackColor = System.Drawing.Color.Red;
  23.  
  24. }
  25.  
  26. //禁用自动生成列
  27. view.OptionsBehavior.AutoPopulateColumns = false;
  28. //禁用自动列宽
  29. if (view is DevExpress.XtraGrid.Views.Grid.GridView)
  30. {
  31. (view as DevExpress.XtraGrid.Views.Grid.GridView).OptionsView.ColumnAutoWidth = false;
  32. }
  33. //禁用数据过滤面板
  34. view.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;
  35.  
  36. #region 添加列
  37.  
  38. view.Columns.Clear();
  39.  
  40. int index = ;
  41. DevExpress.XtraGrid.Columns.GridColumn col = null;
  42.  
  43. col = new DevExpress.XtraGrid.Columns.GridColumn();
  44. col.FieldName = "DBName";
  45. col.Caption = "数据库名";
  46. col.Width = ;
  47. col.VisibleIndex = index++;
  48. view.Columns.Add(col);
  49.  
  50. col = new DevExpress.XtraGrid.Columns.GridColumn();
  51. col.FieldName = "ShortNodeText";
  52. col.Caption = "文件名";
  53. col.Width = ;
  54. col.VisibleIndex = index++;
  55. view.Columns.Add(col);
  56.  
  57. col = new DevExpress.XtraGrid.Columns.GridColumn();
  58. col.FieldName = "CreateDate";
  59. col.Caption = "创建日期";
  60. col.Width = ;
  61. col.VisibleIndex = index++;
  62. view.Columns.Add(col);
  63.  
  64. col = new DevExpress.XtraGrid.Columns.GridColumn();
  65. col.FieldName = "TaskFile";
  66. col.Caption = "任务文件";
  67. col.Width = ;
  68. col.VisibleIndex = index++;
  69. view.Columns.Add(col);
  70.  
  71. col = new DevExpress.XtraGrid.Columns.GridColumn();
  72. col.FieldName = "FullPath";
  73. col.Caption = "完整路径";
  74. col.Width = ;
  75. col.VisibleIndex = index++;
  76. view.Columns.Add(col);
  77.  
  78. col = new DevExpress.XtraGrid.Columns.GridColumn();
  79. col.FieldName = "Barcode";
  80. col.Caption = "电池条码";
  81. col.Width = ;
  82. col.VisibleIndex = index++;
  83. view.Columns.Add(col);
  84.  
  85. #endregion
  86.  
  87. SetAllowEdit(view, false); //禁用编辑
  88. SetAllowSort(view, DevExpress.Utils.DefaultBoolean.False); //禁用排序
  89. SetAllowFilter(view, false); //禁用数据过滤
  90. }

在上面方法中进行样式的设置以及列的添加

注意在添加列时FieldName 属性要与将来设置数据源时的字段一致。

然后上面的禁用编辑的方法

  1. public static void SetAllowEdit(DevExpress.XtraGrid.Views.Base.ColumnView view, bool isAllow)
  2. {
  3. foreach (DevExpress.XtraGrid.Columns.GridColumn col in view.Columns)
  4. {
  5. col.OptionsColumn.AllowEdit = isAllow;
  6. }
  7. }

禁用排序的方法

  1. public static void SetAllowSort(DevExpress.XtraGrid.Views.Base.ColumnView view, DevExpress.Utils.DefaultBoolean value)
  2. {
  3. foreach (DevExpress.XtraGrid.Columns.GridColumn col in view.Columns)
  4. {
  5. col.OptionsColumn.AllowSort = value;
  6. }
  7. }

禁用数据过滤的方法

  1. public static void SetAllowFilter(DevExpress.XtraGrid.Views.Base.ColumnView view, bool isAllow)
  2. {
  3. foreach (DevExpress.XtraGrid.Columns.GridColumn col in view.Columns)
  4. {
  5. col.OptionsFilter.AllowAutoFilter = isAllow;
  6. col.OptionsFilter.AllowFilter = isAllow;
  7. }
  8. }

初始化完样式和添加列后就要设置数据源

首先新建一个实体对象,对象要有与上面添加列时FieldName 所对应的属性。

下面是部门字段和属性,其他省略

  1. public class DataTreeNode
  2. {
  3. private string id;
  4. private string parentId;
  5. private string nodeText;
  6. private string createDate;
  7. private string fullPath;
  8. private string taskFile;
  9. private string barcode;
  10. private DataTreeNodeTypes nodeType = DataTreeNodeTypes.Folder;
  11.  
  12. /// <summary>
  13. /// 去掉扩展名的数据文件完整路径
  14. /// </summary>
  15. public string Id
  16. {
  17. get { return id; }
  18. set { id = value; }
  19. }
  20. /// <summary>
  21. /// 父级节点的Id
  22. /// </summary>
  23. public string ParentId
  24. {
  25. get { return parentId; }
  26. set { parentId = value; }
  27. }
  28. /// <summary>
  29. /// 数据文件名称
  30. /// </summary>
  31. public string NodeText
  32. {
  33. get { return nodeText; }
  34. set { nodeText = value; }
  35. }
  36. }

构建数据源

  1. List<DataTreeNode> data = new List<DataTreeNode>();
  2. data = DataTreeListHelper.ParseDir(Common.Global.AppConfig.TestDataDir, data);
  3. var result = data.Where(p => p.NodeType = = DataTreeNodeTypes.File);

首先声明上面实体对象的List,然后使用ParseDir方法将文件目录进行递归查询。

然后进行筛选出文件类型。

然后可以直接设置数据源

  1. this.gridControl1.DataSource = result;

DevExpress的GridControl的使用以及怎样添加列和绑定数据源的更多相关文章

  1. Devexpress 之gridControl

    1.gridControl如何去掉主面板? 鼠标右键Run Designer=>OptionsView => ShowGroupPanel=False: 2.gridControl如何设置 ...

  2. GridView动态添加列之后,导致PostBack(回发)页面数据丢失问题解决

    直入主题,首先声明,这个问题是无法解决的,特此在这说明 一.如何动态添加列,如下: 在页面重写OnInit事件,至于为什么要在这个事件写,根据页面的声明周期和经验可知(不用去别的地方找了,这个我找了之 ...

  3. devexpress中gridcontrol头部添加垂直线(右边框)

    winform开发,用devexpress中的gridcontrol控件,头部默认是3D样式,当客户希望像内容一样扁平化显示且需要添加垂直线(右边框)时恶梦开始了..经过一阵摸索发现可以这样解决: 1 ...

  4. DevExpress GridControl使用教程:之 添加 checkbox 复选框

    添加一列,FieldName为"FLAG",将ColumnEdit设置为复选框样式. gridview1   =>optionsbehavior =>  editabl ...

  5. DevExpress.XtraGrid.GridControl 实现自定义tooltip

    DevExpress.XtraGrid.GridControl 控件默认的tooltip显示的每一个单元格的文本值,但是实际工作中会出现各种需求.我这里就有一个列是折扣率显示的值是0-1之间的两位小数 ...

  6. DevExpress 之 GridControl 自定义列

    Ø  前言 DevExpress 控件大家应该都有所了解,使用这个框架实现B/S或C/S的,都是非常出色的.本文主要讨论下 GridControl 中如何[自定义列]或[计算列],可使用以下两种方法实 ...

  7. c# 数据表DataTable给devexpress的gridControl提供数据源

    C# DataTable 详解 参考:https://www.cnblogs.com/Sandon/p/5175829.html http://blog.csdn.net/singgel/articl ...

  8. DevExpress之GridControl控件小知识

    DevExpress之GridControl控件小知识 一.当代码中的DataTable中有建数据关系时,DevExpress 的 GridControl 会自动增加一个子视图 .列名也就是子表的字段 ...

  9. DevExpress的GridControl的实时加载数据解决方案(取代分页)

    http://blog.csdn.net/educast/article/details/4769457 evExpress是一套第三方控件 其中有类似DataGridView的控件 今天把针对Dev ...

随机推荐

  1. JSONPath入门之Snack3篇

    Snack3 for java 一个微型JSON框架 基于jdk8,60kb.有序列化反序列化.解析和转换.支持 Json path 查询. <dependency> <groupI ...

  2. django-formset实现数据表的批量操作

    什么是formset 我们知道forms组件是用来做表单验证,更准确一点说,forms组件是用来做数据库表中一行记录的验证.有forms组件不同,formset是同科同时验证表中的多行记录,即form ...

  3. Vue引入

    Vue引入 概念: 1.el:实例 new Vue({ el: '#app' }) // 实例与页面挂载点一一对应 // 一个页面中可以出现多个实例对应多个挂载点 // 实例只操作挂载点内部内容 2. ...

  4. nginx项目部署

    1.概念    1.Django项目(Web应用)    2.web服务        1.nginx        2.Apache            LNMP -> Linux Ngin ...

  5. java基础(3)--详解String

    java基础(3)--详解String 其实与八大基本数据类型一样,String也是我们日常中使用非常频繁的对象,但知其然更要知其所以然,现在就去阅读源码深入了解一下String类对象,并解决一些我由 ...

  6. STM32 GPIO口的配置和应用

    STM32F103ZET6 一共有7组IO口(有FT的标识是可以识别5v的) 每组IO口有16个IO 一共16*7=112个IO 4种输入模式: (1) GPIO_Mode_AIN 模拟输入 (2) ...

  7. 鲲鹏性能优化十板斧之前言 | 鲲鹏处理器NUMA简介与性能调优五步法

    鲲鹏处理器NUMA简介 随着现代社会信息化.智能化的飞速发展,越来越多的设备接入互联网.物联网.车联网,从而催生了庞大的计算需求.但是功耗墙问题以功耗和冷却两大限制极大的影响了单核算力的发展.为了满足 ...

  8. 转:浅谈Spring的PropertyPlaceholderConfigurer

    大型项目中,我们往往会对我们的系统的配置信息进行统一管理,一般做法是将配置信息配置与一个cfg.properties的文件中,然后在我们系统初始化的时候,系统自动读取cfg.properties配置文 ...

  9. Asp.net Core 3.0 Identity 使用smtp账户确认和密码恢复

    当新建一个core项目后,使用identity基架后,确认邮件出现了错误,并不能正常使用. 建立文档在这里 https://docs.microsoft.com/zh-cn/aspnet/core/s ...

  10. plsql判断和循环

    if语句 语法1 如果条件成立,执行if和end if 之间的语句. if 条件表达式 then plsql语句; end if; 语法2 if 条件表达式 then 条件成立时执行的语句; else ...