【问题标题】:RegularExceptionValidator created via code通过代码创建的 RegularExpressionValidator
【发布时间】:2011-08-09 11:14:43
【问题描述】:

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

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

更新: 我错了:/!

【问题讨论】:

    标签: c# asp.net regex validation


    【解决方案1】:

    在上面的代码中添加下面的行,希望这有效

    Page.Controls.Add(revTel); 
    

    【讨论】:

    • 当我这样做时会引发异常:验证器应该有 runat="server"。我怎么能在 C# 代码中做到这一点?
    【解决方案2】:

    你打电话给Validators.Add(revTel)。可能应该将其添加为子控件:

    divValidationControls.Controls.Add(revTel);
    

    【讨论】:

      【解决方案3】:
      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;
      
              }
      

      我添加了一个占位符。

      【讨论】:

        猜你喜欢
        • 2012-02-05
        • 1970-01-01
        • 2012-07-15
        • 2011-11-22
        • 1970-01-01
        • 1970-01-01
        • 2019-09-03
        • 2015-05-27
        • 1970-01-01
        相关资源
        最近更新 更多