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. 前端笔记之NodeJS(二)路由&REPL&模块系统&npm

    一.路由机制(静态资源文件处理) 1.1 Nodejs没有根目录 MIME类型:http://www.w3school.com.cn/media/media_mimeref.asp 在Apache中, ...

  2. 为什么range不是迭代器?range到底是什么类型?

    迭代器是 23 种设计模式中最常用的一种(之一),在 Python 中随处可见它的身影,我们经常用到它,但是却不一定意识到它的存在.在关于迭代器的系列文章中(链接见文末),我至少提到了 23 种生成迭 ...

  3. 5.1基于JWT的认证和授权「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. Cookie-Based认证 认证流程 我们先看下传统Web端的认 ...

  4. 【学习笔记Part 2● MySQL】

    数据库 为什么要用数据库 如何去存放数据?生活中有各种各样的数据.比如说人的姓名.年龄.成绩等.平时我们记录这些信息都是记在大脑中.人的记忆力有限,不可能什么都记住.所以后来人们把数据记录在石头上–& ...

  5. maven下载及安装最详解

    maven的下载及安装 1.maven下载地址:https://maven.apache.org/download.cgi 2.将下载的安装包解压到自定义目录 3.配置环境变量 此电脑->右键属 ...

  6. Iconfont 在HTML中的使用

    一.准备阶段: a.进入阿里巴巴矢量图标库www.iconfont.cn挑选所需的图标,加入购物车 b.点击网页中的购物车下载代码 二.3种方法实现 Iconfont 的HTML显示 Unicode ...

  7. weblogic816 bug list

    weblogic816在aix下的补丁汇总: 严重 Patch 8173326,weblogic server挂起,threaddump显示SERVER HANGS TRYING TO CALL LO ...

  8. keil4编译Error: User Command terminated, Exit-Code = 1解决

    编译出错结果如下图: 通过分析可看出,错误原因是:调用fromelf.exe指令的路径不对.Keil中设置的是 E:\Keil\ARM\BIN40\fromelf.exe(安装Keil位置不同,此处显 ...

  9. sdk和api的区别

    SDK SDK是Software Development Kit的缩写,中文意思是“软件开发工具包”.这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档.范例和工具的集合都可以叫做 ...

  10. 再谈AbstractQueuedSynchronizer1:独占模式

    关于AbstractQueuedSynchronizer JDK1.5之后引入了并发包java.util.concurrent,大大提高了Java程序的并发性能.关于java.util.concurr ...