Devexpress 代码累积
1 GridControl 根据两列的值的关系 设置前景色 背景色 字体等同理
![](/assets/blank.gif)
![](/assets/blank.gif)
//绑定数据 private void DataBind(){List<Entity> list = new List<Entity>();list.Add(new Entity { ID = "1", Name = "Name", Age = "20", Age1 = "1" });list.Add(new Entity { ID = "2", Name = "Name", Age = "21", Age1 = "1" });list.Add(new Entity { ID = "2", Name = "Name", Age = "21", Age1 = "1" });//构造数据实体集合 绑定this.gridControl2.DataSource = list;this.gridView2.OptionsBehavior.Editable = false; //不可编辑this.gridView2.OptionsView.ShowGroupPanel = false; //不显示分组panelthis.gridView2.OptionsView.ShowColumnHeaders = false; //不显示列标题 }//设置列对比前景色变化private void gridView2_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e){if (e.Column.FieldName == "Age1"){//获取要比较的两列的值string value1 = gridView2.GetRowCellValue(e.RowHandle, gridView1.Columns["Age"]).ToString();string value2 = gridView2.GetRowCellValue(e.RowHandle, gridView1.Columns["Age1"]).ToString();if (value1 != value2){e.Appearance.ForeColor = Color.Red; //设置前景色 }}}
View Code
2 导入CSV文件 (列顺序会变化顺序并包含一定判断)
![](/assets/blank.gif)
![](/assets/blank.gif)
private void btn_Click(object sender, EventArgs e){OpenFileDialog open = new OpenFileDialog();StreamReader reader = null;open.Filter = "*.csv|*.csv";if (open.ShowDialog() != System.Windows.Forms.DialogResult.OK){ return; }else{reader = new StreamReader(open.FileName, Encoding.Default);////是否空文件if (string.IsNullOrEmpty(reader.ReadToEnd())){MessageBox.Show("请选择包含数据的文件");reader.Close();return;}//是否有列标题reader.BaseStream.Seek(0, SeekOrigin.Begin); //从头开始读取流string line = reader.ReadLine();while (string.IsNullOrEmpty(line)){line = reader.ReadLine();}string[] captital = line.Split(',');if (captital[0] != "会员号" && captital[0] != "会员简称" && captital[0] != "分类监管指标"){MessageBox.Show("文件格式错误");reader.Close();return;}//获取列标题及其顺序的字典Dictionary<string, int> capitslList = new Dictionary<string, int>();capitslList = GetCapitalList(captital);//读取导入数据string lineData = reader.ReadLine();//错误列表List<string> ErrorList = new List<string>();//数据列表List<string> ImportList = new List<string>();ErrorList.Clear(); ImportList.Clear();//读取数据到List<string> ImportList为验证通过(可能在写库的时候出错)ErrorList保存验证出错数据和写库时出错的数据while (!string.IsNullOrEmpty(lineData)){if (string.IsNullOrEmpty(lineData.Split(',')[0])){ErrorList.Add(lineData + "," + capitslList.First().Key + "不能为空");lineData = reader.ReadLine();continue;}//会员号位纯数字 int MeneberIndex = 0;capitslList.TryGetValue("会员号", out MeneberIndex);if (!IsAllNumber(lineData.Split(',')[MeneberIndex])){ErrorList.Add(lineData + ",会员号格式错误,必须位纯数字");lineData = reader.ReadLine();continue;}//分类监管指标位纯数字int S_Index = 0;capitslList.TryGetValue("分类监管指标", out S_Index);if (!IsAllNumber(lineData.Split(',')[S_Index])){ErrorList.Add(lineData + ",分类监管指标格式错误,必须位纯数字");lineData = reader.ReadLine();continue;}ImportList.Add(lineData);lineData = reader.ReadLine();}int SuccessCount = 0;List<string> ImportErrorList = new List<string>();ImportErrorList.Clear();ImportData(ImportList, capitslList, out ImportErrorList, out SuccessCount);ErrorList.AddRange(ImportErrorList);if (ErrorList.Count > 0){//SomeThing }else{//SomeThing }}}private bool IsAllNumber(string str){char[] chars = str.ToCharArray();foreach (char c in chars){if (char.IsDigit(c)){ continue; }elsereturn false;}return true;}//获取列标题及其顺序private Dictionary<string, int> GetCapitalList(string[] captital){Dictionary<string, int> CapitalList = new Dictionary<string, int>();if (captital[0] == "会员号"){CapitalList.Add("会员号", 0);if (captital[1] == "会员简称"){CapitalList.Add("会员简称", 1);CapitalList.Add("分类监管指标", 2);}else{CapitalList.Add("分类监管指标", 1);CapitalList.Add("会员简称", 2);}}if (captital[0] == "会员简称"){CapitalList.Add("会员简称", 0);if (captital[1] == "会员号"){CapitalList.Add("会员号", 1);CapitalList.Add("分类监管指标", 2);}else{CapitalList.Add("分类监管指标", 1);CapitalList.Add("会员号", 2);}}if (captital[0] == "分类监管指标"){CapitalList.Add("分类监管指标", 0);if (captital[1] == "会员号"){CapitalList.Add("会员号", 1);CapitalList.Add("会员简称", 2);}else{CapitalList.Add("会员简称", 1);CapitalList.Add("会员号", 2);}}return CapitalList;}private void ImportData(List<string> importdata, Dictionary<string, int> capitsllist, out List<string> importerrorist, out int successcount){int SuccessCount = 0;List<string> ImportErrorist = new List<string>();int MemberIDIndex = 0;int MemberAbbrIndex = 0;int S_Index = 0;capitsllist.TryGetValue("会员号", out MemberIDIndex);capitsllist.TryGetValue("会员简称", out MemberAbbrIndex);capitsllist.TryGetValue("分类监管指标", out S_Index);foreach (string data in importdata){string[] dataArray = data.Split(',');string memberid = dataArray[MemberIDIndex];string memberabbr = dataArray[MemberAbbrIndex];string membersindex = dataArray[S_Index];if (!Insert()) //执行Dac方法 写入数据库 {ImportErrorist.Add(data + "," + errorcode);continue;}else{SuccessCount++;}}importerrorist = ImportErrorist;successcount = SuccessCount;}private bool Insert(){//自己需要的方法return true;}
View Code
3 GridControl常用属性
![](/assets/blank.gif)
![](/assets/blank.gif)
//只读gridView1.OptionsBehavior.ReadOnly = true; //选择行背景色一致gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;//选择模式 RowSelect为整行选中 CellSelect为选择单元格 CheckBoxRowSelect复选框选中行gridView1.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect;//显示筛选行gridView1.OptionsView.ShowAutoFilterRow = false;//筛选条件panelgridView1.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;//页脚gridView1.OptionsView.ShowFooter = false;//分组panelgridView1.OptionsView.ShowGroupPanel = false;//自动列宽gridView1.OptionsView.ColumnAutoWidth = true;//执行.AddNewRow()方法后新增行的位置 分别为 top bottom nonegridView1.OptionsView.NewItemRowPosition = DevExpress.XtraGrid.Views.Grid.NewItemRowPosition.Top;//新增一行 gridView1.AddNewRow();//单元格可编辑gridView1.OptionsBehavior.Editable = true;//单元格编辑模式gridView1.OptionsBehavior.EditingMode = DevExpress.XtraGrid.Views.Grid.GridEditingMode.Default;//何种动作出发单元格编辑gridView1.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.Click;gridControl1.DataSource = Data;
View Code
转载于:https://www.cnblogs.com/ShuiMu/articles/4020861.html
Devexpress 代码累积相关推荐
- 巨人通力电梯服务器显示,巨人通力电梯的所有故障代码大全[详细版]
通力电梯故障代码详解.通力电梯的控制系统可监测到电梯电气系统的常见基本故障,对于监测到的故障,可通过LCECPU板上的显示窗口以故障代码的数字形式显示出来.电梯的控制系统的NVRAM可同时存储99个常 ...
- jvm 系列(九):如何优化 Java GC 「译」
本文由CrowHawk翻译,地址:如何优化Java GC「译」,是Java GC调优的经典佳作. Sangmin Lee发表在Cubrid上的"Become a Java GC Expert ...
- 补psp进度(11月4号-9号)
这周psp进度 11月4号 内容 开始时间 结束时间 打断时间 净时间 小伙伴聊天实现 9:45 10:49 0 64m 学习HttpURLConnection 14:13 15:48 10m 85m ...
- 作业 20181016-10 每周例行报告
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2253 1.psp Task(任务) ST(开始时间) ET(结束时间) ...
- jvm系列(十):如何优化Java GC「译」
本文由CrowHawk翻译,地址:如何优化Java GC「译」,是Java GC调优的经典佳作. Sangmin Lee发表在Cubrid上的"Become a Java GC Expert ...
- 深入理解JVM(4)——如何优化Java GC「译」
本文翻译自Sangmin Lee发表在Cubrid上的"Become a Java GC Expert"系列文章的第三篇<How to Tune Java Garbage C ...
- 银行祖传系统重构实例:创立12年,只支持Python 2,跑着500多个应用程序
作者 | THEHFTGUY.万佳 提到遗留系统,你会想到什么? 还在使用 Java 5 的路过 JDK 1.6 的我不说啥了 很多坑 难维护 从零开始(重写) 盼着 IE 什么时候不再能使用 ... ...
- 20181204-1 每周例行报告
一.本周PSP表格 二.本周进度表 三.代码累积折线图 四.博客字数累积图 五.本周PSP饼状图 六.PSP时间累积图 转载于:https://www.cnblogs.com/handsome-blo ...
- jvm系列(九):如何优化Java GC「译
本文由CrowHawk(https://crowhawk.github.io/2017/08/21/jvm_4/)翻译,是Java GC调优的经典佳作. 本文翻译自Sangmin Lee发表在Cubr ...
最新文章
- python3 import 和__import__() 的区别
- 雇佣最优秀的开发者?培养可能是更好的选择
- Shell学习笔记1-2
- 教你玩转CSS 居中
- React开发(171):处理删除与批量删除操作
- html加载js文件失败,firefox/chrome动态设置script加载js文件失败
- androidannotations gradle Android Studio
- 《循序渐进学Spark》一1.7 本章小结
- 【转】simulink中的sample time设置
- chown、chgrp 更改文件属主属组
- 纯净重装正版win10系统的方法
- Discuz模板的制作方法
- linux oracle ora-12162,oracle ORA-12162: TNS:net service name is incorrectly specified
- IPtables中SNAT、DNAT和MASQUERADE的含义
- 计算机编程的好处,青少年学习编程的好处有哪些?
- 迪斯科算法_为什么迪斯科极乐世界如此可重播
- fastjson byte[]转json字符串
- 使用idea搭建SSM框架,并成功运行。
- es ik 多字段查询_SpringBoot使用注解的方式构建Elasticsearch查询语句,实现多条件的复杂查询...
- matlab 三叶线,面积计算求三叶线r=asin3φ所围成的面 – 手机爱问