添加RequiredFieldValidator运行时

本文关键字:运行时 RequiredFieldValidator 添加 | 更新日期: 2023-09-27 18:17:24

我有一个ASP。. NET usercontrol(一个注册表单),我需要添加一个requiredFieldValidator运行时。然而,它不起作用。下面是我添加验证器的方法:

System.Web.UI.WebControls.RequiredFieldValidator nameValidator = new System.Web.UI.WebControls.RequiredFieldValidator();
nameValidator.ControlToValidate = "SignUpName";
nameValidator.ErrorMessage = "You must provide your name";
nameValidator.ID = "nameValidator";
nameValidator.Display = ValidatorDisplay.Dynamic;
this.Page.Validators.Add(nameValidator);

我错过了什么?

-------- EDIT ---------

我从来没有找到解决这个问题的方法。通过使用CustomValidator并手动执行所有验证,我实现了我的目标。

添加RequiredFieldValidator运行时

如果你要动态添加包含验证器的控件那么你需要在Page_Init而不是Page_Load上添加它们否则它们不会正确添加到控件树中也就是说它们不会参与ViewState

您可能最好使用自定义验证器,而不是动态添加所需的验证器。asp.net中的动态控件对我来说除了麻烦什么都没有。

你能不能试一下:

将控件id传递给ControlToValidate

nameValidator.ControlToValidate = SignUpName.ClientID; // or SignUpName.UniqueID

考虑以下两件事:

  • 控件来验证在添加验证器之前被添加到页面控件的层次结构中。
  • 将验证器添加到Page.Controls而不是Page.Validators