• GridControl 使用技巧2——验证单元格输入值


    方法①:使用 ValidatingEditor 事件(一般用于对整个GridView内的文本框进行数据验证)

      当单元格输入格式错误时,直接在该行下方提示,代码如下:

        using System.Text.RegularExpressions; //注意添加引用
    
        private void gridView1_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
        {
            if (gridView1.FocusedColumn == colcount) //设置校验列
            {
                bool result = false;
                Regex regex = new Regex(@"^+?d+$");
                result = regex.IsMatch(e.Value.ToString());
                if (!result)
                {
                    e.ErrorText = "请输入一个正整数";
                    e.Valid = false;
                    return;
                }
            }
        }
    View Code

    效果如下:

    方法②:使用 ValidatingEditor 事件进行验证,InvalidValueException 事件进行错误信息提示(一般用于对整个GridView内的文本框进行数据验证)

      当单元格输入格式错误时,弹出消息看提示,代码如下:

        using DevExpress.XtraEditors.Controls; //注意添加引用
    
        private void gridView1_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
        {
            DataRow dr = gridView1.GetFocusedDataRow();
    
            if (gridView1.FocusedColumn == colcount)
            {
                bool result = false;
                Regex regex = new Regex(@"^+?d+$");
                result = regex.IsMatch(e.Value.ToString());
                if (!result)
                {
                    e.Valid = false;
                }
            }
        }
    
        private void gridView1_InvalidValueException(object sender, DevExpress.XtraEditors.Controls.InvalidValueExceptionEventArgs e)
        {
            e.ExceptionMode = ExceptionMode.DisplayError;
            e.WindowCaption = "输入错误";
            e.ErrorText = "请输入一个正整数";
            gridView1.HideEditor();
        }
    View Code

    效果如下:

    方法③:使用 RepositoryItemTextEdit 的 Validating 事件进行验证,InvalidValueException 事件进行错误信息提示(一般用来对内置控件的单元格进行数据验证)

      当单元格输入格式错误时,弹出消息看提示,代码如下:

        private void repositoryItemTextEdit1_Validating(object sender, CancelEventArgs e)
        {
            //将sender转换为BaseEdit类型,使用EditValue来获取当前输入的值并进行校验
            BaseEdit textEdit = sender as BaseEdit;
    
            if (textEdit.EditValue.ToString().Trim().Length > 0)
            {
                bool result = false;
                Regex regex = new Regex(@"^+?d+$");
                result = regex.IsMatch(textEdit.EditValue.ToString());
                if (!result)
                {
                    e.Cancel = true; //校验不通过
                    return;
                }
            }
        }
    
        private void gridView1_InvalidValueException(object sender, DevExpress.XtraEditors.Controls.InvalidValueExceptionEventArgs e)
        {
            e.ExceptionMode = ExceptionMode.DisplayError;
            e.WindowCaption = "输入错误";
            e.ErrorText = "请输入一个正整数";
            gridView1.HideEditor();
        }
    View Code

    效果如下:

  • 相关阅读:
    成立仅8个月的个人网站,月收入几十万美金
    Dynamics AX Bitmap to Image File
    孤儿药与长尾商品的网络营销
    How to control printer orientation(Landscape / Portrait) for an AX report in X++
    长城坑爹宽带,劫持用户DNS赚取购物返利
    2014年最大福利:185个Google排名因素!免费电子书下载
    火狐用户评价
    冲刺5
    《构建之法》阅读笔记03
    冲刺4
  • 原文地址:https://www.cnblogs.com/719468186-QAQ/p/6340607.html
Copyright © 2020-2023  润新知