通过代码创建的RegularExceptionValidator

时间:2011-08-09 11:14:43

标签: c# asp.net regex validation

我正在尝试使用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";

我忘记将一个Control to Validate分配给验证器。

更新: 我错了:/!

3 个答案:

答案 0 :(得分:0)

在上面的代码中添加以下代码行,希望这可行

Page.Controls.Add(revTel); 

答案 1 :(得分:0)

您致电Validators.Add(revTel)。可能它应该作为儿童控制添加:

divValidationControls.Controls.Add(revTel);

答案 2 :(得分:0)

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(concurrencyExceptionValidator);

            //Page.Controls.Add(concurrencyExceptionValidator);


            e.ExceptionHandled = true;

        }

我添加了一个占位符。