Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I add an ASP.NET control inside an ASCX to an external RequiredFieldValidator programmatically?

I have a drop-down list inside a user control (ASCX) that I want to validate from the page on which I've placed the ASCX, but when I set the ControlToValidate to the drop-down list the page complains that it can't be found. Thanks for any help/suggestions.

like image 280
mkelley33 Avatar asked Jan 20 '26 09:01

mkelley33


2 Answers

Expose the dropdown list with a public property in your user control:

public DropDownList DropDownToValidate
    {
        get
        {
            return ddlTest;
        }
    }

Then use the UniqueID of the exposed Dropdown to set the control to validate in the page load of the page on which you dropped the user control:

protected void Page_Load(object sender, EventArgs e)
{

    RequiredFieldValidator1.ControlToValidate = WebUserControl1.DropDownToValidate.UniqueID;
}
like image 136
Chris Mullins Avatar answered Jan 21 '26 23:01

Chris Mullins


The only way I know to do this is to do this in your user control class:


[ValidationProperty("Foo")]
public class MyUserControl : UserControl
{
     public string Foo
     {
          get { return(yourDropDown.SelectedValue); }
     }
}

And then in the page you place the user control on:


<asp:RequiredFieldValidator ControlToValidate="yourUserControlName" runat="server" ErrorMessage="You are required to make a selection" />

Not quite the same thing, but that's the only workaround that I know.

like image 41
Matthew Groves Avatar answered Jan 21 '26 21:01

Matthew Groves



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!