GridControl单元格编辑验证的方法

本文实例演示了DevExpress实现GridControl单元格编辑验证的方法,比较实用的功能,具体方法如下:

主要功能代码如下:

/// <summary>
/// 自定义单元格验证
/// </summary>
/// <param name="view">GridView</param>
/// <param name="e">BaseContainerValidateEditorEventArgs</param>
/// <param name="fieldNameHandler">委托</param>
/// <param name="errorHanlder">委托</param>
/// <param name="errorText">当验证不通过对时候,错误提示信息文字</param>
public static void CustomValidatingEditor(this GridView view, BaseContainerValidateEditorEventArgs e, Predicate<string> fieldNameHandler, Predicate<object> errorHanlder, string errorText)
{
  /*说明
   *在ValidatingEditor事件使用
   *eg:
   *string[] workType = new string[4] { "-1", "关闭但不删除", "启用", "删除" };
   *void gvLampConfig_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
   *{
   * GridView _view = sender as GridView;
   * _view.CustomValidatingEditor(e, fieldName => fieldName.Equals("TLampWorkStatus"), value => !workType.Contains<string>(value.ToString()), "若想设置为不修改,请输入-1即可");
   * }
   */
  if (fieldNameHandler(view.FocusedColumn.FieldName))
  {
 if (errorHanlder(e.Value))
 {
   e.Valid = false;
   e.ErrorText = errorText;
 }
  }
}

代码使用方法如下:

string[] workType = new string[4] { "-1", "关闭但不删除", "启用", "删除" };
void gvLampConfig_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
{
  GridView _view = sender as GridView;
  _view.CustomValidatingEditor(e, fieldName => fieldName.Equals("TLampWorkStatus"), value => !workType.Contains<string>(value.ToString()), "若想设置为不修改,请输入-1即可");
}

原文地址:https://www.cnblogs.com/MuNet/p/11487924.html

时间: 2024-08-08 21:55:27

GridControl单元格编辑验证的方法的相关文章

[DevExpress]GridControl单元格编辑验证

关键代码: /// <summary> /// 自定义单元格验证 /// </summary> /// <param name="view">GridView</param> /// <param name="e">BaseContainerValidateEditorEventArgs</param> /// <param name="fieldNameHandler"

jqGrid单元格编辑详解

单元格编辑 单元格编辑提供给用户修改一行中的单个单元格内容的功能,开发者可以通过ajax或者单元格编辑事件对修改的数据进行处理. 通过下面的行为,单元格编辑支持键盘导航和执行单元格编辑操作 点击一个不可编辑的单元格会选中它,然后可以通过上下左右键移动到其他单元格 当移动到一个可编辑的单元格,可以按下Enter键将单元格切换到编辑模式.当再次按下Enter键,或者tab,点击其他单元格将会执行保存操作.按下Esc键取消编辑并且恢复为之前的值.当编辑一个单元格时,光标键始终在此单元格内. 点击可编辑

MFC List Control控件添加单元格编辑和单元格下拉列表项以适用于数据库相关操作

作为现代的软件,往往是连着数据库的,而连着和用户方便地操作之间,还有着界面这道坎.MFC是Windows上比较好开发用户界面的框架,然而其自带的控件中没有对于数据库表格支持较好的控件,而使用网上提到的 DataGrid 等控件在本人的win8.1+VS2013平台上老出现找不到控件或者头文件的问题,搞的烦死人.最后想到 List Control 控件只要稍作修改,加上单元格编辑和单元格下拉列表,其实就能和数据库进行良好的对接,一百度,果然有人已经做了这件事,实在是太让人感动了!       

获取光标在GridControl单元格中的位置

前段时间遇到一个需求,在gridcontrol单元格中光标位置插入选择的特殊符号,按理说需求很简单,但是在开发过程中却遇到一个问题,无法获取光标在单元格中的位置,查遍了控件的帮助文档也没有找到现成的方法,最后通过BaseEdit折中转换了一下,算是解决了这个问题,现讲解决代码贴出来,给有需要的人提供帮助         private DevExpress.XtraEditors.BaseEdit m_gridViewActiveEditor = null;         private vo

ExtJs表格控件(三)----单元格编辑与提交修改

ExtJs的EditorGrid控件提供了动态修改某个单元格的方法,首先如果要使用编辑插件,首先必须要在需要的列上添加editor属性,只有添加了editor属性的列才可以被编辑,否则无法编辑.同时我们可以在editor中添加一些限制或者约束条件,例如禁止编辑的单元格为空,首先在定义列的时候使用如下方法定义: var columns = [{ header : '第一列', dataIndex : 'first', renderer:datarender, editor:{ allowBlank

C# Excel 单元格编辑

public class ExcelReport    {  //Excel 文件修改要引用COM组件Microsoft Excel 11.0 Object Library  //using Microsoft.Office.Interop.Excel;  /// <summary>        /// 单元格修改        /// </summary>        /// <param name="filePath">excel路径<

JQgrid实现全表单元格编辑

1 jQuery("#baseWageDataValueGrid").jqGrid('setGridParam',{'cellEdit':true}); 2 3 //修改所有td tabindex 4 var tdList = $('#baseWageDataValueGrid').find('td'); 5 if(!!tdList && tdList.length>0){ 6 $.each(tdList,function(i,o) { 7 $(o).attr('

Dev GridControl 单元格输入数据的验证方法

今天要做一个dev gridcongtrol输入单元格内容有效性的检测,此处以不允许为空.该列的值不允许重复为例.(当然也可以使用别的方式,但别的方式不好实现:当该单元格值不满足条件时,锁定整个gridview,除该单元格之外的位置都不允许输入,即将焦点锁定在这一个单元格). 1.首先将要验证的列设置为RepositoryItemCheckEdit类型,或者别的控件类型(其余控件类型未测试),以下以RepositoryItemCheckEdit类型为例 2.找到RepositoryItemChe

DevExpress GridControl 单元格添加进度条(ProgressBar)

首先可以使用DevExpress GridControl 自带的进度条控件. 但是我要用一个方法来设置所以的单元格进度,而不是每个单元格都要设置一遍,同时我想要根据进度值不同,进度条显示不同的颜色. 那么就要自己手动的编写代码来完成了. 1 : 绘制一个单元格进度条 形状   当进度小于50%时显示为红色. 1 public void DrawProgressBar(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) 2 {