using DevExpress.Data;
using DevExpress.Utils;
using DevExpress.XtraGrid.Views.Grid;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text; namespace Dev.GridControl
{
public class GridMethod
{
string path = System.Windows.Forms.Application.StartupPath + "\\layout\\";
/// <summary>
/// 列名称
/// </summary>
public Dictionary<string, string> DicColName { get; set; }
/// <summary>
/// 数据源
/// </summary>
public DataTable Source { get; set; }
/// <summary>
/// 列宽
/// </summary>
public int IndicatorWidth { get; set; }
/// <summary>
/// GridContrl -- GridView
/// </summary>
public GridView GView { get; set; } public GridMethod()
{
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
} /// <summary>
/// 选中行 字体颜色、背景颜色设置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void gridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
{
GridView gridView1 = (GridView)sender;
gridView1.Appearance.FocusedRow.ForeColor = Color.Red;//字体颜色
gridView1.Appearance.FocusedRow.BackColor = Color.Linen;//行背景颜色
}
/// <summary>
/// 初始化GridContrl--GridView的样式和事件
/// </summary>
/// <param name="gridView1">gridView1</param>
/// <param name="IndicatorWidth">-1 列的宽度</param>
/// <param name="dt"> 绑定的数据源</param>
/// <param name="ColCaption">列标题</param>
public void GetSetGridContrl2(DataTable dt, GridView gridView1, int IndicatorWidth, string NameSpacePath)
{
//设置列索引为-1的列宽
gridView1.IndicatorWidth = IndicatorWidth;
gridView1.OptionsView.ShowAutoFilterRow = true;
gridView1.OptionsView.ColumnAutoWidth = false;
//自动列宽,会出现横向滚动条
gridView1.OptionsView.ColumnAutoWidth = false;
//自动列宽
gridView1.BestFitColumns();
gridView1.Appearance.OddRow.BackColor = Color.PaleGoldenrod; // 设置奇数行颜色 // 默认也是白色 可以省略
gridView1.OptionsView.EnableAppearanceOddRow = true; // 使能 // 和和上面绑定 同时使用有效
gridView1.Appearance.EvenRow.BackColor = Color.WhiteSmoke; // 设置偶数行颜色
gridView1.OptionsView.EnableAppearanceEvenRow = true; // 使能 // 和和上面绑定 同时使用有效
gridView1.OptionsView.ShowGroupPanel = false;
string FileNames = "", REM = "", LONG = "", type2 = "";
try
{ for (int i = ; i < dt.Rows.Count; i++)
{
FileNames = dt.Rows[i]["FileNames"].ToString();
REM = dt.Rows[i]["REM"].ToString();
LONG = dt.Rows[i]["LONG"].ToString();
type2 = dt.Rows[i]["type2"].ToString(); DevExpress.XtraGrid.Columns.GridColumn Col1 = new DevExpress.XtraGrid.Columns.GridColumn();
try
{
Col1.Width = Convert.ToInt32(LONG);
}
catch (Exception ex)
{
Col1.Width =;
}
Col1.Tag = FileNames;
Col1.Name = "Col" + FileNames;
Col1.FieldName = FileNames;
Col1.Caption = REM; if (type2 == "时间")//时间格式
{
Col1.DisplayFormat.FormatType = FormatType.DateTime;
Col1.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss"; }
if (type2 == "数值")//数值格式,最大4位小数
{
Col1.DisplayFormat.FormatString = "N4";
Col1.DisplayFormat.FormatType = FormatType.Numeric;
}
Col1.VisibleIndex = i;
gridView1.Columns.Add(Col1);
}
}
catch (Exception)
{ } //添加 行索引事件
gridView1.CustomDrawRowIndicator += gridView1_CustomDrawRowIndicator;
//布局变化时产生事件
gridView1.Layout += gridView1_Layout;
//保存表格样式的.xml文件
string xmlfile = path + NameSpacePath.Replace(".", "") + gridView1.Name + ".xml";
gridView1.Tag = xmlfile;
LoadLayout(gridView1);//加载窗格
gridView1.OptionsView.ShowFooter = true;
}
/// <summary>
/// GridContrl--GridView 的设置
/// </summary>
/// <param name="gridView1">gridView1</param>
/// <param name="IndicatorWidth">-1 列的宽度</param>
/// <param name="dt"> 绑定的数据源</param>
/// <param name="ColCaption">列标题</param>
public void GetSetGridContrl(GridView gridView1, int IndicatorWidth, string NameSpacePath)
{
//设置列索引为-1的列宽
gridView1.IndicatorWidth = IndicatorWidth;
gridView1.OptionsView.ShowAutoFilterRow = true;
gridView1.OptionsView.ColumnAutoWidth = false;
//自动列宽,会出现横向滚动条
gridView1.OptionsView.ColumnAutoWidth = false;
//自动列宽
gridView1.BestFitColumns();
gridView1.Appearance.OddRow.BackColor = Color.PaleGoldenrod; // 设置奇数行颜色 // 默认也是白色 可以省略
gridView1.OptionsView.EnableAppearanceOddRow = true; // 使能 // 和和上面绑定 同时使用有效
gridView1.Appearance.EvenRow.BackColor = Color.WhiteSmoke; // 设置偶数行颜色
gridView1.OptionsView.EnableAppearanceEvenRow = true; // 使能 // 和和上面绑定 同时使用有效
gridView1.OptionsView.ShowGroupPanel = false;
//添加 行索引事件
gridView1.CustomDrawRowIndicator += gridView1_CustomDrawRowIndicator;
//布局变化时产生事件
gridView1.Layout += gridView1_Layout;
string xmlfile = path + NameSpacePath.Replace(".", "") + gridView1.Name + ".xml";
gridView1.Tag = xmlfile;
LoadLayout(gridView1);//加载窗格
gridView1.OptionsView.ShowFooter = true;
gridView1.RowStyle += gridView1_RowStyle;
} /// <summary>
/// GridContrl--GridView 的设置
/// </summary>
/// <param name="gridView1">gridView1</param>
/// <param name="IndicatorWidth">-1 列的宽度</param>
/// <param name="dt"> 绑定的数据源</param>
/// <param name="ColCaption">列标题</param>
public void GetSetGridContrl(DataTable dt, GridView gridView1, int IndicatorWidth, string NameSpacePath)
{
//设置列索引为-1的列宽
gridView1.IndicatorWidth = IndicatorWidth;
gridView1.OptionsView.ShowAutoFilterRow = true;
gridView1.OptionsView.ColumnAutoWidth = false;
//自动列宽,会出现横向滚动条
gridView1.OptionsView.ColumnAutoWidth = false;
//自动列宽
gridView1.BestFitColumns();
gridView1.Appearance.OddRow.BackColor = Color.PaleGoldenrod; // 设置奇数行颜色 // 默认也是白色 可以省略
gridView1.OptionsView.EnableAppearanceOddRow = true; // 使能 // 和和上面绑定 同时使用有效
gridView1.Appearance.EvenRow.BackColor = Color.WhiteSmoke; // 设置偶数行颜色
gridView1.OptionsView.EnableAppearanceEvenRow = true; // 使能 // 和和上面绑定 同时使用有效
gridView1.OptionsView.ShowGroupPanel = false;
string FileNames = "", REM = "", LONG = "", type2 = "";
try
{ for (int i = ; i < dt.Rows.Count; i++)
{
FileNames = dt.Rows[i]["FileNames"].ToString();
REM = dt.Rows[i]["REM"].ToString();
LONG = dt.Rows[i]["LONG"].ToString();
type2 = dt.Rows[i]["type2"].ToString(); DevExpress.XtraGrid.Columns.GridColumn Col1 = new DevExpress.XtraGrid.Columns.GridColumn();
try
{
Col1.Width = Convert.ToInt32(LONG);
}
catch (Exception ex)
{
Col1.Width =;
}
Col1.Tag = FileNames;
Col1.Name = "Col" + FileNames;
Col1.FieldName = FileNames;
Col1.Caption = REM; if (type2 == "时间")
{
Col1.DisplayFormat.FormatType = FormatType.DateTime;
Col1.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss"; }
if (type2 == "数值")
{
Col1.DisplayFormat.FormatString = "N4";
Col1.DisplayFormat.FormatType = FormatType.Numeric;
}
Col1.VisibleIndex = i;
gridView1.Columns.Add(Col1);
}
}
catch (Exception)
{ } //添加 行索引事件
gridView1.CustomDrawRowIndicator += gridView1_CustomDrawRowIndicator;
//布局变化时产生事件
gridView1.Layout += gridView1_Layout;
string xmlfile = path + NameSpacePath.Replace(".", "") + gridView1.Name + ".xml";
gridView1.Tag = xmlfile;
LoadLayout(gridView1);//加载窗格
gridView1.OptionsView.ShowFooter = true;
gridView1.RowStyle+=gridView1_RowStyle; } /// <summary>
/// 布局变化时,自动保存窗格样式
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void gridView1_Layout(object sender, EventArgs e)
{
GridView gridView1 = (GridView)sender;
SaveLayout(gridView1);//布局变化时 自动保存窗格布局
} /// <summary>
/// 保存风格的方法
/// </summary>
/// <param name="moduleid"></param>
/// <param name="saveType"></param>
public void SaveLayout(GridView gridView1)
{
string file = gridView1.Tag.ToString();
if (File.Exists(file))
{
File.Delete(file);
}
gridView1.SaveLayoutToXml(file);
} /// <summary>
/// 加载风格
/// </summary>
/// <param name="moduleid"></param>
/// <param name="saveType"></param>
public void LoadLayout(GridView gridView1)
{
string file = gridView1.Tag.ToString();
if (!File.Exists(file))
{
return;
}
gridView1.RestoreLayoutFromXml(file);
} /// <summary>
/// 添加行索引,过滤行筛选条件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public static void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
{
GridView gridView1 = (GridView)sender;
//设置行索引:列索引等于-1处设置行索引。
if (e.Info.IsRowIndicator && e.RowHandle >= )
{
e.Info.DisplayText = (e.RowHandle + ).ToString();
}
//设置筛选行不用输入百分号直接筛选
foreach (DevExpress.XtraGrid.Columns.GridColumn item in gridView1.Columns)
{
item.OptionsFilter.AutoFilterCondition = DevExpress.XtraGrid.Columns.AutoFilterCondition.Contains; //筛选条件设置为包含
} }
}
}

GridContrl 通用类的更多相关文章

  1. poi导出excel通用类

    一.关键的通用类public class PoiExportUtils {    private static HSSFWorkbook workBook; public PoiExportUtils ...

  2. NPOI MVC 模型导出Excel通用类

    通用类: public enum DataTypeEnum { Int = , Float = , Double = , String = , DateTime = , Date = } public ...

  3. MVC NPOI Linq导出Excel通用类

    之前写了一个模型导出Excel通用类,但是在实际应用中,可能不是直接导出模型,而是通过Linq查询后获取到最终结果再导出 通用类: public enum DataTypeEnum { Int = , ...

  4. NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

    以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

  5. mongdo通用类(C#版)

    日前从公司离职,很快,还没休息就步入了现在的公司,开始跟着公司的脚步走. 公司的项目基本都是大数据的,所以在数据库上大部分都是使用Mongodb和Redis,基本都是Nosql型的数据库为主.以前自己 ...

  6. 我写的一个ExcelHelper通用类,可用于读取或生成数据

    读取或生成EXCEL数据的方法有很多,一般常见的有: 1.通过OFFICE EXCEL组件,优点:读取与生成EXCEL文件方便,缺点:服务器上必须安装OFFICE软件,且进程无法及时释放 2.通过第三 ...

  7. DataTable转List<Model>通用类

    /// <summary> /// DataTable转List<Model>通用类[实体转换辅助类] /// </summary> public class Mo ...

  8. Memcached通用类(基于enyim.com Memcached Client)

    一.如果用官方提供的方法,在web.config里面配置好了各个参数和服务器IP.如下图: <?xml version="1.0"?> <configuratio ...

  9. Memcached通用类(基于Memcached Client Library)

    分享下自己编写的Memcached通用类.欢迎大家帮忙指点下哈~ 使用的是.NET memcached client library 客户端+Memcached Providers using Sys ...

随机推荐

  1. 使用PixiJS做一个小游戏

    PixiJS PixiJS使用WebGL,是一个超快的HTML5 2D渲染引擎.作为一个Javascript的2D渲染器,Pixi.js的目标是提供一个快速的.轻量级而且是兼任所有设备的2D库. 官方 ...

  2. spring boot 2.0 Feign的客户端

    1.pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId ...

  3. java中强大的免费的集成开发环境(IDE)eclipse的使用技巧及注意事项

    1调整字体,window->prefernce->Appereance->colors and fonts->Basic->Text font双击即可进行编辑 2.设置行 ...

  4. AI应用开发实战 - 手写算式计算器

    扩展手写数字识别应用 识别并计算简单手写数学表达式 主要知识点 了解MNIST数据集 了解如何扩展数据集 实现手写算式计算器 简介 本文将介绍一例支持识别手写数学表达式并对其进行计算的人工智能应用的开 ...

  5. Scanner类详解

    Scanner类用于获取键盘输入(是一个基于正则表达式的文本扫描器),它可以从文件.字符串.输入流中解析出基本类型值和字符串值.Scanner类提供了多个构造器,不同的构造器可以接收文件.字符串和输入 ...

  6. String字符串创建与存储机制

    Java内存可以粗略的区分为堆内存(Heap)和栈内存(Stack),堆中存放的是对象实例,而栈中存放的则是方法调用过程中的局部变量或引用等. 在Java语言中,字符串的生命与初始化有如下两种方式: ...

  7. 【Python实践-1】求一元二次方程的两个解

    知识点: import sys, sys模块包含了与Python解释器和它的环境有关的函数. “sys”是“system”的缩写.sys.exit() 中途退出程序, (注:0是正常退出,其他为不正常 ...

  8. Sublime Text2支持Vue语法高亮显示

    1.下载vue语法高亮插件vue-syntax-highlight 下载地址:https://github.com/vuejs/vue-syntax-highlight 2.将vue-syntax-h ...

  9. ASP.NET Core Web API 集成测试

    本文需要您了解ASP.NET Core Web API 和 xUnit的相关知识. 这里有xUnit的介绍: https://www.cnblogs.com/cgzl/p/9178672.html#t ...

  10. 【Numpy应用】--对于图片处理的机器学习库的应用

    一.思路 二.代码: #coding:utf-8 import numpy as np import PIL.Image as Image import pickle as p import os c ...