RegularExceptionValidator通过代码创建

本文关键字:创建 代码 RegularExceptionValidator | 更新日期: 2023-09-27 18:04:49

我正在尝试使用regex类和按下提交按钮时创建的自定义RegularExceptionValidator进行验证。正则表达式和正则表达式工作正常。我的问题是验证器没有出现在我的页面上:

                RegularExpressionValidator revTel = new RegularExpressionValidator();
                revTel.ErrorMessage = "Le format Tel: ";
                revTel.IsValid = false;
                revTel.ValidationGroup = txtPhone.ValidationGroup;
                Validators.Add(revTel);
                revTel.Visible = true;

更新:谢谢你的回答。遗漏的代码是:

revPhone.ControlToValidate = "txtPhone";

我忘记给验证器分配一个要验证的控件。

更新:我错了:/!

RegularExceptionValidator通过代码创建

在上面的代码中添加下一行,希望这能在中工作

Page.Controls.Add(revTel); 

您调用了Validators.Add(revTel)。可能应该添加为子控件:

divValidationControls.Controls.Add(revTel);
if (e.Exception.InnerException is OptimisticConcurrencyException)
        {
            var concurrencyExceptionValidator = new CustomValidator();
            concurrencyExceptionValidator.IsValid = false;
            concurrencyExceptionValidator.ErrorMessage =
            "L'enregistrement que vous essayez de mettre à jour a été " +
            "modifié par un autre utilisateur après que vous l'avez récupéré. " +
            "Les nouvelles valeurs sont affichées.";
            concurrencyExceptionValidator.Visible = true;
            concurrencyExceptionValidator.Enabled = true;
            concurrencyExceptionValidator.Display = ValidatorDisplay.Dynamic;
            Page.Validators.Add(concurrencyExceptionValidator);
            concurrencyExceptionValidator.Attributes.Add("runat", "server");

PlaceHolder1.Controls.Add(concurrentyExceptionValidator(

            //Page.Controls.Add(concurrencyExceptionValidator);

            e.ExceptionHandled = true;
        }

我添加了一个占位符。