A Calendar egy klasszikus vezérlő az ASP.NET hőskorából: csak egy kattintás és van egy naptárunk, ami viszont ronda HTML-t generál, és csak Postbackelni tud. Emiatt persze a saját kiválasztott dátumának a tárolásához is ViewSate kell. Én egy olyan Calendarra vágytam, ami az URL-be dobja fel a kiválasztott napott. A megoldást az eredeti kiválasztási mód (SelectionMode) kikapcsolásában és naponként egy új link elhelyezésében találtam meg:
<asp:Calendar ID="naptar" runat="server"
SelectionMode="None"
OnDayRender="naptar_DayRender" />
protected void naptar_DayRender( object sender, DayRenderEventArgs e )
{
e.Cell.Controls.Clear();
HyperLink link = new HyperLink();
link.NavigateUrl = string.Format( "?datum={0}", e.Day.Date.ToString( "yyyy-MM-dd" ) );
link.Text = e.Day.DayNumberText;
e.Cell.Controls.Add( link );
}