Lo UC con dentro il calendario:

ASPX
codice:
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="cachedCalendar.ascx.vb" Inherits="studio.cachedCalendar" %>

<%@ OutputCache Duration="60" VaryByControl="cal" %>

<asp:Calendar ID="cal" Runat="server"></asp:Calendar>
VB
codice:
    Protected WithEvents cal As System.Web.UI.WebControls.Calendar

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Inserire qui il codice utente necessario per inizializzare la pagina
    End Sub

    Private Sub cal_DayRender(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DayRenderEventArgs) Handles cal.DayRender
        ' La prima volta visualizza in rosso il giorno corrente
        If Not IsPostBack Then
            If e.Day.IsToday Then
                e.Cell.BackColor = Color.Red
            End If
        Else ' Dalla seconda volta visualizza in rosso il giorno 3 (del mese corrente)
            If e.Day.Date.Day = 3 And Not e.Day.IsOtherMonth Then
                e.Cell.BackColor = Color.Red
            End If
        End If
    End Sub

La pagina che lo ospita:
codice:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="statoCalendario.aspx.vb" Inherits="studio.statoCalendario"%>
<%@ Register TagPrefix="Custom" TagName="CalendarioCache" Src="cachedCalendar.ascx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
	<HEAD>
		<title>statoCalendario</title>
	</HEAD>
	<body MS_POSITIONING="GridLayout">
		<form id="Form1" method="post" runat="server">
		
			<Custom:CalendarioCache id="CalendarioCache1" runat="server"></Custom:CalendarioCache>
			


			<asp:Button ID="bt" Runat="server" Text="Postback"></asp:Button>
		
		</form>
	</body>
</HTML>
Ed il caching per 60 secondi funziona, errore JS a parte che credo sia qualcosa che non va sul mio PC.

Qualcuno si ricorda esattamente come funziona la direttiva VaryByControl, per far produrre una versione diversa della pagina in cache, agendo su un determinato controllo designato a cambiarla ?

Ho provato, come si vede, mettendo VaryByControl="cal" nello UC ma non reagisce (dovrebbe colorare il giorno 3 invece che l'1)