博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dev GridControl 单元格输入数据的验证方法
阅读量:7201 次
发布时间:2019-06-29

本文共 2487 字,大约阅读时间需要 8 分钟。

作者:jiankunking 出处:

今天要做一个dev gridcongtrol输入单元格内容有效性的检测,此处以不允许为空、该列的值不允许重复为例。(当然也可以使用别的方式,但别的方式不好实现:当该单元格值不满足条件时,锁定整个gridview,除该单元格之外的位置都不允许输入,即将焦点锁定在这一个单元格)。

1、首先将要验证的列设置为RepositoryItemTextEdit类型,或者别的控件类型(其余控件类型未测试),以下以RepositoryItemTextEdit类型为例

2、找到RepositoryItemTextEdit的Validating事件,具体代码如下:

 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;                        }                    }                }            }
3、根据Validating事件中的标识,进行错误信息提示:

private void gViewActList_InvalidValueException(object sender, InvalidValueExceptionEventArgs e)        {            if (errorReason == 0)            {                e.ErrorText = "动作名称不允许为空!";            }            else if (errorReason == 1)            {                e.ErrorText = "动作名称不允许为重复!";            }            else            {                e.ErrorText = "值无效!";            }        }

具体效果如下:

小注:

1、使用RepositoryItem.Validating事件,事件的"sender" 必须转换为BaseEdit类型,使用EditValue来获取当前输入的值并进行校验,如果校验不通过,把e.Cancel设置True。这种方法一般用来对内置控件的单元格进行数据验证。

2、使用 GridView.ValidatingEditor 事件 

 事件的"sender"必须转换为GridView类型,当前列可以从GridView.FocusedColumn属性获得,值可以从e.Value获取,如果校验不通过,需要把e.Valid设置为False.。这种方法一般用于对整个Grid内的文本框进行数据验证。

    具体错误提示信息可以在GridView.InvalidValueException事件中进行处理

你可能感兴趣的文章
Sent Items 不见了
查看>>
Style3D属性面板的开发指南
查看>>
Mac OS X 从零开始系列教程10-刻录光盘
查看>>
对学习计算机专业的人一些忠告
查看>>
求医不如求己
查看>>
DatePickerDialog——日期选择器对话框
查看>>
创建自己的git镜像
查看>>
值得前端收藏的CSS3动效库
查看>>
Android Support Library小结
查看>>
meteor方法
查看>>
JavaScript 实现 input 标签只能输入数字(且不能输入e或者其他各种符号)
查看>>
ThinkPad E40无线网卡驱动安装 FOR CENTOS6.3
查看>>
MySQL报错问题
查看>>
myeclipse配置hadoop开发环境
查看>>
多站点配置
查看>>
JS学习随记_day04
查看>>
hive集成sentry的sql使用语法
查看>>
java基础-继承
查看>>
树莓派无显示器上手步骤
查看>>
菜鸟学习Hibernate——简单的增、删、改、查操作
查看>>