ASP.NET - 验证UserControl内部的控件

cwe*_*ton 5 asp.net validation user-controls

我有一个围绕DropDownList的包装器UserControl控件,用于管理DropDownList值的语言特定转换.

我还有一个必需的字段验证器,需要内部下拉列表.

如何通过usercontrol公开此控件以允许验证?

我目前得到的错误如下:

... cannot be validated. at System.Web.UI.WebControls.BaseValidator.CheckControlValidationProperty(String name, String propertyName)
      at System.Web.UI.WebControls.BaseValidator.ControlPropertiesValid()
Run Code Online (Sandbox Code Playgroud)

编辑:我现在正在使用......

[ValidationPropertyAttribute("SelectedValue")]
Run Code Online (Sandbox Code Playgroud)

....随着

public string SelectedValue
{
    get { return cboI18nItems.SelectedValue; }
}
Run Code Online (Sandbox Code Playgroud)

如果我在回发时检查页面的IsValid属性,那么现在正在工作.

Tim*_*ter 5

您的Validator应位于UserControl内部,但可从页面访问.

或者在UserControl上设置ValidationProperty

  1. 将验证器放在UserControl中.它可以访问数据输入控件的ID.
  2. 使用CustomValidator.不要使用其ControlToValidate属性.相反,在您自己的评估函数中,您将通过UserControl访问DropDownList.您可能会将DropDownList字段设置为Public,以便在将UserControl对象强制转换为该UserControl的类时可以看到它.
  3. 可以使用ValidationPropertyAttribute.您需要向usercontrol添加一个属性,该属性返回数据的字符串值.

这里找到.