R – Validate – Web User Control

asp.netweb-controls

I do not like to use the calendar from .NET, so I would like to have one Web User Control with 3 drop down boxes, day, month, year. [CODE DONE].

I want to be able to call this Control and initialize it with start year and end year, and with or without selected date.[CODE DONE].

This control will see if there is one valid date selected and return bool [CODE DONE].

Then in my web page I would like to able to see if that web user control is valid, in a way that I can use with the normal .NET validation (associate one required field), the problem is that I don't know where to put this code and retrieve it to the validation control on the web page. [CODE NOT DONE].

How can I do this?

Best Answer

There are two steps to integrating your custom server controls with the validation framework.

(1) Server side: you'll need to add a ValidationPropertyAttribute to your class, so the validation framwework knows what to look at when validating:

[ValidationProperty("SelectedDate")]
public class MyDateControl : WebControl
{
    public DateTime? SelectedDate { get { ... } set { ... } }
} 

(2) To hook up with client side validation, you have to make sure there's an input tag associated with your control. One way of doing that is rendering an <input type="hidden"> as the first child tag of your web control's HTML. The validation framework will pick up on that. The remaining thing to do here, is to set this hidden field through JavaScript each time your one drop downs changes.

This way, you can tie in with the existing validation controls. If you want different way to validate, you should look at a CustomValidator.