Dev GridControl 单元格输入数据的验证方法
2015-04-01 18:18
375 查看
作者:jiankunking 出处:http://blog.csdn.net/jiankunking
今天要做一个dev gridcongtrol输入单元格内容有效性的检测,此处以不允许为空、该列的值不允许重复为例。(当然也可以使用别的方式,但别的方式不好实现:当该单元格值不满足条件时,锁定整个gridview,除该单元格之外的位置都不允许输入,即将焦点锁定在这一个单元格)。
1、首先将要验证的列设置为RepositoryItemTextEdit类型,或者别的控件类型(其余控件类型未测试),以下以RepositoryItemTextEdit类型为例
2、找到RepositoryItemTextEdit的Validating事件,具体代码如下:
3、根据Validating事件中的标识,进行错误信息提示:
小注:
1、使用RepositoryItem.Validating事件,事件的"sender" 必须转换为BaseEdit类型,使用EditValue来获取当前输入的值并进行校验,如果校验不通过,把e.Cancel设置True。这种方法一般用来对内置控件的单元格进行数据验证。
2、使用 GridView.ValidatingEditor 事件
事件的"sender"必须转换为GridView类型,当前列可以从GridView.FocusedColumn属性获得,值可以从e.Value获取,如果校验不通过,需要把e.Valid设置为False.。这种方法一般用于对整个Grid内的文本框进行数据验证。
具体错误提示信息可以在GridView.InvalidValueException事件中进行处理
今天要做一个dev gridcongtrol输入单元格内容有效性的检测,此处以不允许为空、该列的值不允许重复为例。(当然也可以使用别的方式,但别的方式不好实现:当该单元格值不满足条件时,锁定整个gridview,除该单元格之外的位置都不允许输入,即将焦点锁定在这一个单元格)。
1、首先将要验证的列设置为RepositoryItemTextEdit类型,或者别的控件类型(其余控件类型未测试),以下以RepositoryItemTextEdit类型为例
2、找到RepositoryItemTextEdit的Validating事件,具体代码如下:
<span style="font-size:14px;"> private void TextEdit1_Validating(object sender, System.ComponentModel.CancelEventArgs e) { BaseEdit textEdit = sender as BaseEdit; if (textEdit.Text.ToString().Trim().Length == 0) { e.Cancel = true; //标识 错误提示 errorReason = 0; return; } else { //获取GridView中所有的选中的行号 //此处不允许多选,故只有一行 int[] iRowId = this.gViewActList.GetSelectedRows(); for (int i = 0; i < gViewActList.DataRowCount; i++) { //重复检验时,不验证当前行 if (i != iRowId[0]) { //textEdit.EditValue 当前编辑的值 //需要注意的是取当前单元格的值要用:textEdit.EditValue //GridView在TextEdit1_Validating执行时还未将你输入的值更新进去,但执行完该方法后,即使不满足条件,你所输入的值,也会更新到GridView中去 //同时,也说明了,在Validating函数中排除重复值的时候,通过GridView获取当前行的值,不是最新的,即不是你最近一次输入的 if (textEdit.EditValue.ToString().Trim() == gViewActList.GetDataRow(i)["GridView上绑定的列名"].ToString().Trim()) { e.Cancel = true; //标识 错误提示 errorReason = 1; return; } } } }</span>
3、根据Validating事件中的标识,进行错误信息提示:
<span style="font-size:14px;">private void gViewActList_InvalidValueException(object sender, InvalidValueExceptionEventArgs e) { if (errorReason == 0) { e.ErrorText = "动作名称不允许为空!"; } else if (errorReason == 1) { e.ErrorText = "动作名称不允许为重复!"; } else { e.ErrorText = "值无效!"; } }</span>具体效果如下:
小注:
1、使用RepositoryItem.Validating事件,事件的"sender" 必须转换为BaseEdit类型,使用EditValue来获取当前输入的值并进行校验,如果校验不通过,把e.Cancel设置True。这种方法一般用来对内置控件的单元格进行数据验证。
2、使用 GridView.ValidatingEditor 事件
事件的"sender"必须转换为GridView类型,当前列可以从GridView.FocusedColumn属性获得,值可以从e.Value获取,如果校验不通过,需要把e.Valid设置为False.。这种方法一般用于对整个Grid内的文本框进行数据验证。
具体错误提示信息可以在GridView.InvalidValueException事件中进行处理
相关文章推荐
- Dev GridControl 单元格输入数据的验证方法
- Dev GridControl修改单元格无法触发CellValueChanged事件的解决方法
- 获取GridControl中单元格数据
- DevExpress的GridControl中自定义列中使用RadioButton在拉动滚动条后数据丢失的解决方法
- Dev gridcontrol获取选定行,指定列单元格的内容
- DEV gridcontrol 设置行数据超宽换行
- DEV中获取gridControl里当前选中行的数据
- DataGrid单元格数据输入格式检测方法
- dev gridcontrol获取点击行的某个数据
- DEV GridControl 控件 编辑状态下数据更新问题
- C# dev GridControl绑定数据不能显示
- Dev GridControl 里面实现指定单元格 转化成 按钮控件
- DEV GridControl绑定的数据,ID相同的行显示相同的颜色(当可以确定ID的值时)
- Dev gridcontrol获取选定行,指定列单元格的内容
- dev gridcontrol选中多行数据
- 关于datagridview单元格不切换焦点无法获得新输入数据的问题解决方法
- 几种用VBA在单元格输入数据的方法
- Dev的GridControl自定义设置行和单元格的错误信息
- [DevExpress]实现GridControl输入验证
- DEV Gridcontrol 格式化显示数据