代码之家  ›  专栏  ›  技术社区  ›  cweston Given

ASP.NET-正在验证用户控件中的控件

  •  5
  • cweston Given  · 技术社区  · 14 年前

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

    我还有一个内部dropdownlist所需的字段验证器。

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

    ... cannot be validated. at System.Web.UI.WebControls.BaseValidator.CheckControlValidationProperty(String name, String propertyName)
          at System.Web.UI.WebControls.BaseValidator.ControlPropertiesValid()
    

    编辑: 我现在用。。。

    [ValidationPropertyAttribute("SelectedValue")]
    

    public string SelectedValue
    {
        get { return cboI18nItems.SelectedValue; }
    }
    

    如果我在回发时检查页面的IsValid属性,则现在可以运行。

    2 回复  |  直到 14 年前
        1
  •  5
  •   Tim Schmelter    14 年前

    验证器应该在用户控件中,但可以从页面访问。

    或设置 ValidationProperty 在用户控件上

    1. 数据输入控件。
    2. 使用CustomValidator。不要使用其控件验证属性。 相反,在你自己的评估范围内 通过用户控件的下拉列表。 DropDownList字段公共 在键入UserControl后看到 反对那类人
    3. 可以使用ValidationPropertyAttribute。 返回字符串的用户控件 数据的值。

    找到 here

        2
  •  1
  •   bbqchickenrobot joe_coolish    12 年前

    我处理这个问题的方式和上面建议的有点不同。以下是从我的代码中提取的代码片段:

    Protected Sub ValidateCreditCard()
        Dim validators = Page.GetValidators("cc")
        For Each v In validators
            DirectCast(v, BaseValidator).Validate()
        Next
    End Sub
    

    VB.NET代码,但应该很容易理解。