【DevExpress中文教程】在GridView中动态创建列时如何绑定不同编辑处理控件

发布时间:2026/8/6 17:42:00

【DevExpress中文教程】在GridView中动态创建列时如何绑定不同编辑处理控件
在使用DevExpress GridView时为了方便往往使用一些扩展函数动态创建GridView列的编辑控件对象然后我们可以灵活的对内容进行编辑或者使用一些弹出的对话框窗体进行处理内容的录入本文就是介绍这一主题在DevExpress的GridView的列中动态创建列的时候绑定不同的编辑处理控件。DevExpress拥有.NET开发需要的所有平台控件包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。DevExpress新旧版本帮助文档下载可进QQ qun获取1697253161. 使用扩展函数动态创建列我们创建列为了绑定相应的数据源信息展示一般指定列的名称和显示的列标题名称如下是一个简单的列创建处理代码。grv.CreateColumn(Note, 备注说明);如果赢绑定了数据源我们也可以根据列的FieldName进行获得列的控制权然后给它指定不同的编辑控件如下所示。gridview.Columns.ColumnByFieldName(Introduction).CreateMemoEdit();上面的CreateMemoEdit()函数就是一个简单的扩展函数用于创建一个备注列的处理它的编辑器控件 RepositoryItemMemoEdit 的RepositoryItem 扩展对象扩展函数如下所示的代码。/// summary /// 创建GridView的列编辑为MemoEdit /// /summary /// param namegridColumnGridColumn列对象/param /// returns/returns public static RepositoryItemMemoEdit CreateMemoEdit(this GridColumn gridColumn) { RepositoryItemMemoEdit repositoryItem new RepositoryItemMemoEdit { AutoHeight false, LinesCount 0 }; gridColumn.View.GridControl.RepositoryItems.Add(repositoryItem); gridColumn.ColumnEdit repositoryItem; return repositoryItem; }我们把它们这些扩展函数定义在不同的类文件中使用静态类就可以了。例如对于GridControl和GridView的相关处理扩展函数把它整理放在一个类文件中定义各种方便使用的方法即可如下所示。对于一些简单的录入我们保留让他使用默认文本输入框即可如下所示代码。this.gridViewRequisition.CreateColumn(需求金额, 需求金额, 80); this.gridViewRequisition.CreateColumn(采购数量, 采购数量, 80); this.gridViewRequisition.CreateColumn(采购金额, 采购金额, 80); this.gridViewRequisition.CreateColumn(库存数量, 库存数量, 80); this.gridViewRequisition.CreateColumn(可用库存, 可用库存, 80);当然如果我们想获得对应列的一些特殊的处理那么可以把获得的列对象赋值给变量然后进行相关的属性处理。var colQuantity grv.CreateColumn(Quantity, 销售数量); colQuantity.AppearanceCell.BackColor Color.Moccasin; colQuantity.AppearanceCell.Options.UseBackColor true; colQuantity.CreateSpinEdit();而对于一些特殊的列如一些下拉列表的列我们可以指定他们的下拉列表可以是固定列表也可以通过函数获取数据库的记录进行绑定处理如下所示。var purchaseType this.gridViewRequisition.CreateColumn(采购类型, 采购类型, 80).CreateGridLookUpEdit(); var typeList new ListCListItem() { new CListItem(正品), new CListItem(样品), new CListItem(免费) }; purchaseType.BindDictItems(typeList, false);而如果备注处理嫌GridView里面输入太麻烦可以使用弹出的对话框进行处理如下代码所示。var note this.gridViewRequisition.CreateColumn(备注, 备注, 100).CreateButtonEdit(); note.EditValueChanging (ss, ee) { gridViewRequisition.SetFocusedRowCellValue(备注, ee.NewValue); }; note.ButtonClick (ss, ee) { var dlg new FrmShowTextEdit(); dlg.FieldDefaultValue gridViewRequisition.GetFocusedRowCellDisplayText(备注); dlg.FieldDisplayName 备注; if (dlg.ShowDialog() DialogResult.OK) { gridViewRequisition.SetFocusedRowCellValue(备注, dlg.ReturnValue); } };弹出界面如下所示。或者有时候我们使用一些其他的选择对话框也是类似的处理方式。gridview.Columns.ColumnByFieldName(Creator).CreateButtonEdit().ButtonClick (object sender, ButtonPressedEventArgs e) { FrmSelectCustomer dlg new FrmSelectCustomer(); if(dlg.ShowDialog() System.Windows.Forms.DialogResult.OK) { if(gridview.GetFocusedRow() null) { gridview.AddNewRow();//如果首次则增加一行 } gridview.SetFocusedRowCellValue(Creator, dlg.CustomerName); } };如一些列表也可以使用LookupEdit的编辑控件进行处理选择的展示。如果我们希望对列表的特定字段进行启用编辑那么可以利用下面扩展函数方式实现。//设置只读、可编辑字段 this.gridViewAmount.SetColumnsReadOnly(*, false); this.gridViewAmount.SetColumnsReadOnly(序列,采购类型,需求量,备注, true);如果需要指定特定的汇总字段可以通过下面代码实现。// 设置统计字段 if (gridViewAmount?.Columns.Count 0) { gridViewAmount.ClearSummaryColumns(); gridViewAmount.SetSummaryColumn(采购数量, DevExpress.Data.SummaryItemType.Sum); }2. 列内容的格式处理在上面动态创建的列编辑控件对于编辑的值发生变化需要及时的反映到实际的列表对应的单元格的值中一般在事件EditValueChanging 中通过SetFocusedRowCellValue 就可以设置回去了如下代码所示。var note this.gridViewRequisition.CreateColumn(备注, 备注, 100).CreateButtonEdit(); note.EditValueChanging (ss, ee) { gridViewRequisition.SetFocusedRowCellValue(备注, ee.NewValue); };而对于一些数值型的内容处理如SpinEdit的编辑器控件那么每次输入一个不同的字符都会触发这个处理那么就有点不正常的了因此可以通过下面的方式进行矫正利用EditValueChanged事件的处理。var xuqiuLiang this.gridViewRequisition.CreateColumn(需求数量, 需求数量, 80).CreateSpinEdit(); xuqiuLiang.ValidateOnEnterKey true; xuqiuLiang.EditValueChanged async (ss, ee) { var value ((ss) as SpinEdit).Value; this.gridViewRequisition.SetFocusedRowCellValue(需求数量, value); //刷新显示 gridViewRequisition.RefreshRow(gridViewRequisition.FocusedRowHandle); };上面的代码通过把对应的当前控件转换为编辑器控件获得值再行处理也是可以的。另外有时候如果列的内容变更了我们需要及时刷新指定列表行的内容可以通过下面的代码实现的。gridViewRequisition.RefreshRow(gridViewRequisition.FocusedRowHandle);对于一些列表需要给它指定删除的操作方便移除整条记录那么为它添加删除键即可如下代码所示。//行删除操作 this.gridViewRequisition.OptionsBehavior.AllowDeleteRows DefaultBoolean.True; this.gridViewRequisition.KeyDown (s, ee) { if (ee.KeyCode Keys.Delete) {//移除记录 gridViewRequisition.DeleteRow(gridViewRequisition.FocusedRowHandle); gridViewRequisition.RefreshData(); ee.Handled true; } };而对于列的一些格式转义操作我们可以统一处理可以把几个不同的GridView的转义函数放在一起。//统一处理转义信息 this.gridViewRequisition.CustomColumnDisplayText CustomColumnDisplayText; this.gridViewSubx.CustomColumnDisplayText CustomColumnDisplayText; this.gridViewSpecification.CustomColumnDisplayText CustomColumnDisplayText;转义一般对日期的格式和数值型的格式进行一些格式化处理如下代码所示。private void CustomColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e) { string columnName e.Column.FieldName; if (e.Column.ColumnType typeof(DateTime) || e.Column.ColumnType typeof(DateTime?)) { if (e.Value ! null) { if (e.Value DBNull.Value || Convert.ToDateTime(e.Value) Convert.ToDateTime(1900-1-1)) { e.DisplayText ; } else { e.DisplayText Convert.ToDateTime(e.Value).ToString(yyyy-MM-dd HH:mm);//yyyy-MM-dd } } } else if (e.Column.ColumnType typeof(decimal) || e.Column.ColumnType typeof(decimal?)) { decimal value; if (decimal.TryParse(e.DisplayText, out value)) { e.DisplayText value.ToString(0.################); } } }而如果喜欢对列的背景色等进行自定义可以在事件RowCellStyle中根据不同的字段名称进行处理。this.gridViewSpecification.RowCellStyle (s, e) { e.Appearance.BackColor Color.Transparent; if (e.Column.FieldName 序列) { var xulie string.Concat(gridViewSubx.GetFocusedRowCellValue(序列)); if (!xulie.IsNullOrEmpty() e.CellValue?.ToString() xulie) { e.Appearance.BackColor Color.Red; //醒目颜色 } } };有时候我们需要反色当前选择的单元格那么可以通过事件CustomDrawCell 进行控制如下代码所示。this.gridView1.CustomDrawCell (s, e) { // 设置选中单元格的背景颜色 if (e.Column gridView1.FocusedColumn e.RowHandle gridView1.FocusedRowHandle) { e.Appearance.BackColor Color.LightGreen; } };以上就是一些利用GridView进行处理的一些经验代码总结希望对您有所启发。本文转载自博客园 - 伍华聪https://www.cnblogs.com/wuhuacong/p/17566150.html

相关新闻

Kendo UI for jQuery,一个现代的jQuery UI组件!

Kendo UI for jQuery,一个现代的jQuery UI组件!

2026/8/6 17:42:00

Kendo UI for jQuery是什么?Kendo UI for jQuery是完整的jQuery UI组件库,可快速构建出色的高性能响应式Web应用程序。Kendo UI for jQuery提供在短时间内构建现代Web应用程序所需要的工具,从多个UI组件中选择,并轻松地将它们组合…

佳能g1800 g1810 g2800 g2810 g3800 g3810 g4800 g4810清零软件5b00,5b02,5b04,1700,1702,1704,p07,e08亲测完美维修。

佳能g1800 g1810 g2800 g2810 g3800 g3810 g4800 g4810清零软件5b00,5b02,5b04,1700,1702,1704,p07,e08亲测完美维修。

2026/8/6 17:42:00

极速下载:点这里下载 密码:00 百度云:点这里下载 备用:pan.baidu.com/s/1gls2G4rqWWP-Mw-z6tVjnQ?pwd0000 常见型号如下: G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G1…

使用MyEclipse如何部署Descriptor (XML)编辑器?

使用MyEclipse如何部署Descriptor (XML)编辑器?

2026/8/6 17:41:59

Descriptor (XML) Editor编辑器包含了高级的XML编辑功能,在本文中您将了解到这些编辑功能、Web XML编辑等,此功能包含在MyEclipse中可用。1. Web XML 编辑器MyEclipse Web XML编辑器包括高级XML编辑功能,如:语法高亮显示标签和属性…

终极DINOv2视觉模型选择指南:从通用到生物医学的完整攻略

终极DINOv2视觉模型选择指南:从通用到生物医学的完整攻略

2026/8/6 18:42:02

终极DINOv2视觉模型选择指南:从通用到生物医学的完整攻略 【免费下载链接】dinov2 PyTorch code and models for the DINOv2 self-supervised learning method. 项目地址: https://gitcode.com/GitHub_Trending/di/dinov2 你是否正在寻找一个强大的视觉特征提…

多路电化学采集系统设计:基于 ADSD1278 菊花链 32 通道同步采集方案

多路电化学采集系统设计:基于 ADSD1278 菊花链 32 通道同步采集方案

2026/8/6 18:42:02

多路电化学采集系统设计:基于 ADSD1278 菊花链 32 通道同步采集方案摘要在电化学计时电流法测试场景中,经常需要同时采集多路试条的 I‑t 反应曲线,要求多通道严格时间对齐,同时后期具备通道扩展能力。本文记录一套基于国产同步 Σ…

如何在Windows电脑上免费畅玩Switch游戏:yuzu模拟器完整指南

如何在Windows电脑上免费畅玩Switch游戏:yuzu模拟器完整指南

2026/8/6 18:42:02

如何在Windows电脑上免费畅玩Switch游戏:yuzu模拟器完整指南 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu 想要在您的Windows电脑上体验《塞尔达传说:旷野之息》、《超级马里奥&#xff1…

园区楼宇智能化管理平台

园区楼宇智能化管理平台

2026/8/6 18:42:02

【落地产品,有需要可留言联系,支持项目合作或源码合作】 一、项目概述 随着科技的不断进步和城市化进程的加速,园区楼宇的智能化管理已成为提升运营效率、优化资源配置、提高用户体验的关键。本方案旨在构建一个全面、高效、智能的园区楼宇…

CRM模型性能优化:低显存GPU适配与推理速度提升终极指南

CRM模型性能优化:低显存GPU适配与推理速度提升终极指南

2026/8/6 18:42:02

CRM模型性能优化:低显存GPU适配与推理速度提升终极指南 【免费下载链接】CRM [ECCV 2024] Single Image to 3D Textured Mesh in 10 seconds with Convolutional Reconstruction Model. 项目地址: https://gitcode.com/gh_mirrors/crm10/CRM CRM(…

PCB之四层板

PCB之四层板

2026/8/6 18:32:02

四层 PCB 叠层设计笔记叠层(从上到下)Top  表层信号层GND  内层完整地平面SIG  内层信号走线层Bottom 底层信号层叠层特点:第二层专用完整 GND 平面;第三层为信号优先的内层,不是专用电源平面。适合信号多、电源…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/4 15:23:37

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

Unity相机抖动插件Camera-Shake集成与应用实战指南

Unity相机抖动插件Camera-Shake集成与应用实战指南

2026/8/6 0:00:51

1. 项目概述与核心价值最近在做一个动作游戏,需要给主角的重击和爆炸场景加点料,让打击感更足。我第一时间就想到了给相机加个抖动效果,毕竟这是提升玩家沉浸感最简单直接的手段之一。自己手写一个也不是不行,但时间成本高&#x…

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

2026/8/6 0:00:51

1. 项目概述:为什么需要一份3.7版本的专属适配指南?如果你是一位使用Cocos Creator开发微信小游戏的开发者,并且项目正运行在3.7版本上,那么你很可能已经感受到了那份“甜蜜的烦恼”。一方面,Cocos Creator 3.7是一个功…

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

2026/8/6 0:00:51

1. 项目概述:一次开源AI编程课程的深度重构 最近,我把自己的开源AI编程课程《Claude Code》做了一次从里到外的大更新。如果你对利用Claude、Codex这类大模型来辅助编程感兴趣,或者正在寻找一个能跟上最新AI编码工具迭代节奏的学习路径&#…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/6 5:43:30

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/4 14:25:14

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…