Creating an AJAX-Enabled Calendar Control
Introduction
Go to any travel or event booking
website and you'll find the same user interface for
collecting date information: the Calendar. Providing such an
interface in an ASP.NET application is a breeze, thanks to
the built-in Calendar Web control. There are two downsides
to ASP.NET's Calendar control: first, it is not very useful
when selecting dates far into the future or past, as you can
only navigate to the next or previous month; and, second,
the Calendar does not use AJAX techniques, so each click, be
it selecting a date or moving to the next or previous month,
requires a full postback.
Mehmet Genc addressed this first shortcoming in Extending the Calendar Control's Date Navigation by showing how to add month and year drop-down lists. But Mehmet's article was written in 2004 and since then AJAX-enabled websites have become all the rage. I decided it was high time to update Mehmet's custom Calendar control to support AJAX. Specifically, I implemented the AJAX-enabled Calendar control as a User Control. The User Control renders a TextBox control that, when clicked, displays a Calendar control from which the user can select the date. Like with Mehmet's Calendar, users can quickly jump to a particular month or year by using two drop-down lists. And best of all, the user experience is very responsive.