我在DropDownList周围有一个 Package 器UserControl,用于管理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条答案
按热度按时间h4cxqtbf1#
验证程序应位于UserControl内部,但可从页访问。
或者在UserControl上设置ValidationProperty
1.将验证程序放在UserControl中。它可以访问数据输入控件的ID。
1.使用CustomValidator。不要使用其ControlToValidate属性。相反,您将在自己的计算函数中通过UserControl访问DropDownList。您可能会将DropDownList字段设置为Public,以便在将UserControl对象类型转换为该UserControl的类后可以看到该字段。
1.可以使用ValidationPropertyAttribute。您需要向用户控件添加一个属性,以返回数据的字符串值。
找到here。
omtl5h9j2#
我处理这个问题的方式和上面的建议有点不同。下面是我的代码中的一段代码片段:
NET代码,但应该很容易弄清楚.