Condividi tramite


Procedura: controllare l'esplorazione dei mesi in un controllo server Web Calendar

Aggiornamento: novembre 2007

Per impostazione predefinita, il calendario visualizza il mese contenente la data odierna. Gli utenti possono spostarsi da un mese all'altro nel controllo Calendar facendo clic sui collegamenti di spostamento dei mesi nella barra del titolo del calendario. È possibile determinare se questi collegamenti sono disponibili per la selezione.

È anche possibile esplorare a livello di codice, operazione utile per fornire agli utenti un modo alternativo di visualizzare un determinato mese. Infine, è possibile rispondere a un evento generato dall'esplorazione dell'utente.

Per attivare o disattivare l'esplorazione dei mesi da parte dell'utente

  • Impostare la proprietà ShowNextPrevMonth del controllo Calendar su true o false. Se si imposta false, il controllo non visualizzerà nel titolo i controlli LinkButton che consentono all'utente di spostarsi tra i mesi.

    Suggerimento:

    Per modificare l'aspetto dei collegamenti di spostamento dei mesi è possibile impostare le proprietà NextMonthText, PrevMonthText, NextPrevFormat e NextPrevStyle.

Per esplorare i mesi a livello di codice

  • Impostare la proprietà VisibleDate del controllo su una data del mese da visualizzare. Questa può essere un giorno qualsiasi del mese desiderato, anche se in genere è impostata sul primo giorno. Se per la proprietà VisibleDate non è specificato alcun valore (se è impostata su DateTime.Empty), il mese attualmente visualizzato dipende dal valore della proprietà TodaysDate.

    Nell'esempio che segue si passa al mese di febbraio 2000:

    Calendar1.VisibleDate = New Date(2000, 2, 1)
    
    Calendar1.VisibleDate = new DateTime(2000, 2, 1);
    

    La modifica della proprietà VisibleDate non influisce sui valori della proprietà TodaysDate, SelectedDayStyle o SelectedDates.

Se si attiva l'esplorazione dei mesi, il controllo genera un evento quando l'utente si sposta su un altro mese. Questo evento può essere gestito per sostituire o correggere l'esplorazione predefinita dei mesi. Ad esempio, se si utilizzano due controlli Calendar in una pagina di programmazione viaggi, è possibile impedire che l'utente imposti la data di partenza su un mese successivo a quello della data di rientro.

Per rispondere a un evento di esplorazione dei mesi

  • Creare un metodo per l'evento VisibleMonthChanged del controllo. Quando viene generato questo evento, il controllo ha già modificato di un'unità la proprietà VisibleMonth.

    L'evento VisibleMonthChanged accetta un solo argomento di tipo MonthChangedEventArgs. Le seguenti proprietà di questo argomento possono essere utilizzate per determinare o ignorare le operazioni dell'utente:

    Proprietà

    Descrizione

    PreviousDate

    Il valore del mese visualizzato prima che l'utente abbia scelto un pulsante di esplorazione dei mesi. È possibile confrontare il valore di questa proprietà con quello della proprietà VisibleMonth del controllo per determinare la direzione in cui si sposta l'utente. Per annullare l'effetto del clic dell'utente, impostare la proprietà VisibleDate del controllo su questo valore.

    NewDate

    Il valore del mese su cui si è spostato l'utente. La proprietà VisibleDate viene aggiornata in base a questo valore prima che venga generato l'evento VisibleMonthChanged.

    Public Sub Calendar1_VisibleMonthChanged(ByVal sender As Object, _
       ByVal e As System.Web.UI.WebControls.MonthChangedEventArgs) _
       Handles Calendar1.VisibleMonthChanged
    
       ' Select the 10th and 25th of each month.
       Calendar1.SelectedDates.Clear()
       Calendar1.SelectedDates.Add(New DateTime(e.NewDate.Year, e.NewDate.Month, 10))
       Calendar1.SelectedDates.Add(New DateTime(e.NewDate.Year, e.NewDate.Month, 25))
    End Sub
    
    private void Calendar1_VisibleMonthChanged (object sender, 
       System.Web.UI.WebControls.MonthChangedEventArgs e)
    {
         // Select the 10th and 25th of each month.
         Calendar1.SelectedDates.Clear();
         Calendar1.SelectedDates.Add(new DateTime(e.NewDate.Year, e.NewDate.Month, 10));
         Calendar1.SelectedDates.Add(new DateTime(e.NewDate.Year, e.NewDate.Month, 25));
    }
    

Vedere anche

Concetti

Cenni preliminari sul controllo server Web Calendar