我在用户控件 (ASCX) 中有一个下拉列表,我想从放置 ASCX 的页面验证它,但是当我将 ControlToValidate 设置为下拉列表时,页面抱怨它可以'找不到。感谢您的任何帮助/建议。
问问题
1869 次
3 回答
5
在您的用户控件中使用公共属性公开下拉列表:
public DropDownList DropDownToValidate
{
get
{
return ddlTest;
}
}
然后使用暴露的 Dropdown 的 UniqueID 将控件设置为在您放置用户控件的页面的页面加载中进行验证:
protected void Page_Load(object sender, EventArgs e)
{
RequiredFieldValidator1.ControlToValidate = WebUserControl1.DropDownToValidate.UniqueID;
}
于 2009-07-09T13:38:29.430 回答
3
我知道这样做的唯一方法是在您的用户控件类中执行此操作:
[ValidationProperty("Foo")]
public class MyUserControl : UserControl
{
public string Foo
{
get { return(yourDropDown.SelectedValue); }
}
}
然后在页面中放置用户控件:
<asp:RequiredFieldValidator ControlToValidate="yourUserControlName" runat="server" ErrorMessage="You are required to make a selection" />
不完全一样,但这是我知道的唯一解决方法。
于 2009-07-09T13:33:24.757 回答
1
我认为验证用户控件的最佳方法是在用户控件中使用公共方法:
public void Validate() {
reqRecipientName.Validate();
reqRecipientMail.Validate();
valRecipientMail.Validate();
reqRecipientPhone.Validate();
}
其中reqRecipientName
, reqRecipientMail
... 是验证器的 ID(它们也是 insice ascx)。然后在页面内提交方法调用controlId.Validate();
这对我有用。
于 2009-12-12T10:27:25.357 回答