Lo UC con dentro il calendario:
ASPX
VBcodice:<%@ 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>
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:
Ed il caching per 60 secondi funziona, errore JS a parte che credo sia qualcosa che non va sul mio PC.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>
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)![]()

Rispondi quotando