Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Mantenere la colorazione giorni del calendario

    Ho un calendario su una pagina, devo controllare con una query sul DB delle condizioni e colorare i singoli giorni con colori diversi.

    E' possibile mantenere il suo stato dopo la prima 'colorazione' e non fargli fare questa pesante operazione ad ogni Page_Load ?

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: l'unica cosa che mi viene in mente è di lasciare il "calendario" fisso e usare ajax per aggiornare gli altri elementi della pagina :master:

    Pietro

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Ue' ciao

    Purtroppo qui Ajax e' bandito...
    Stavo pensando ad incapsularlo in uno UC e cachare quest'ultimo :master:

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    Ue' ciao

    Purtroppo qui Ajax e' bandito...
    Stavo pensando ad incapsularlo in uno UC e cachare quest'ultimo :master:
    ciao forse hai ragione, prova e fai sapere

    Pietro

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Ho provato a mettere in cache per 1 minuto uno usercontrol con dentro solo il calendario.

    Non so perchè, quando clicco LA SECONDA VOLTA su un giorno di quest'ultimo (la prima mi effettua correttamente il postback senza cambiare stato), mi genera un errore Javascript :master:

    Lunedì posto il codice

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    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)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.