Freigeben über


Gewusst wie: Reagieren auf eine Datumsauswahl in einem Calendar-Webserversteuerelement

Aktualisiert: November 2007

Wenn die SelectionMode-Eigenschaft des Calendar-Steuerelements nicht auf None festgelegt ist, kann der Benutzer einen Tag oder einen Datumsbereich auswählen. Nachdem die Benutzerauswahl ermittelt wurde, kann darauf reagiert werden.

So reagieren Sie auf eine Datumsauswahl

  • Erstellen Sie eine Methode für das SelectionChanged-Ereignis des Calendar-Steuerelements mit folgender Signatur:

    Private Sub Calendar1_SelectionChanged(ByVal sender _
        As System.Object, ByVal e As System.EventArgs) _
        Handles Calendar1.SelectionChanged
    
    private void Calendar1_SelectionChanged (object sender, 
        System.EventArgs e)
    
    Hinweis:

    Das Ereignis wird nur dann ausgelöst, wenn die Datumsauswahl durch eine Benutzeraktion im Steuerelement geändert wird. Wenn ein Benutzer z. B. zweimal auf das gleiche Datum klickt, wird vom zweiten Klicken kein Ereignis ausgelöst. Das Ereignis wird auch dann nicht ausgelöst, wenn ein Datumsbereich programmgesteuert festgelegt wird.

Informationen über die Datumsauswahl sind in folgenden Eigenschaften verfügbar:

Eigenschaft

Beschreibung

SelectedDate

Ein einzelnes Datum. Wenn der Benutzer ein einzelnes Datum ausgewählt hat, enthält diese Eigenschaft das Datum. Wenn der Benutzer einen Datumsbereich ausgewählt hat, enthält diese Eigenschaft das erste Datum des Bereichs.

SelectedDates

Eine Auflistung, in der alle ausgewählten Datumsangaben enthalten sind. Die Datumsangaben in dieser Sammlung sind geordnet und eindeutig. Da das Calendar-Steuerelement dem Benutzer nicht die Auswahl mehrerer einzelner Datumsangaben gestattet, enthält die Auflistung die Datumsangaben in sequenzieller Form.

So bestimmen Sie, wie viele Datumsangaben ausgewählt wurden

  • Rufen Sie den Wert der Count-Eigenschaft der SelectedDates-Auflistung ab wie im folgenden Beispiel gezeigt:

    Public Sub Calendar1_SelectionChanged(ByVal sender As Object, _
       ByVal e As System.EventArgs) _
       Handles Calendar1.SelectionChanged
    
       Text1.Text = "You selected " _
          & Calendar1.SelectedDates.Count.ToString() _
          & " date(s)."
    End Sub
    
    private void Calendar1_SelectionChanged (object sender, System.EventArgs e)
    {
       Text1.Text = String.Format("You selected {0} date(s).",
          Calendar1.SelectedDates.Count);
    }   
    

Wenn festgestellt worden ist, dass der Benutzer mehrere Datumsangaben ausgewählt hat, kann der Bereich abgerufen werden.

So rufen Sie den Datumsbereich ab, wenn mehrere Datumsangaben ausgewählt wurden

  1. Rufen Sie die Anzahl der ausgewählten Datumsangaben mit der Count-Eigenschaft der SelectedDates-Eigenschaft ab.

  2. Rufen Sie das erste Datum in der Auflistung ab, und rufen Sie anschließend das letzte Datum ab, indem Sie das Datum am Index Anzahl minus eins abrufen. Das folgende Beispiel zeigt das erste und das letzte Datum in Textfeldsteuerelementen auf der Seite an.

    Public Sub Calendar1_SelectionChanged(ByVal sender As Object, _
       ByVal e As System.EventArgs) _
       Handles Calendar1.SelectionChanged
    
       With Calendar1.SelectedDates
          If .Count > 1 Then
             Dim firstDate As Date = .Item(0).Date
             Dim lastDate As Date = .Item(.Count - 1).Date
             TextBox1.Text = firstDate.ToString()
             TextBox2.Text = lastDate.ToString()
          End If
       End With
    End Sub
    
    private void Calendar1_SelectionChanged (object sender,
       System.EventArgs e)
    {
       SelectedDatesCollection theDates = Calendar1.SelectedDates;
       if (theDates.Count > 1) 
       {
          DateTime firstDate = theDates[0];
          DateTime lastDate = theDates[theDates.Count-1];
          TextBox1.Text = firstDate.ToString();
          TextBox2.Text = lastDate.ToString();
       }
    }
    

So rufen Sie den Zeitraum für eine Auswahl mehrerer Datumsangaben ab

  • Erstellen Sie ein TimeSpan-Objekt, und legen Sie es auf die Differenz zwischen der letzten und der ersten Datumsangabe in der SelectedDates-Auflistung fest. Rufen Sie anschließend die Days-Eigenschaft des TimeSpan-Objekts ab.

    Public Sub Calendar1_SelectionChanged(ByVal sender As Object, _
       ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged
       With Calendar1.SelectedDates
          Dim days As Integer
          Dim firstDate As Date = .Item(0).Date
          Dim lastDate As Date = .Item(.Count - 1).Date
          ' The Subtract method returns a TimeSpan object.
          days = lastDate.Subtract(firstDate).Days + 1
          TextBox1.Text = "You have selected " & days.ToString() & " day(s)."
       End With
    End Sub
    
    private void Calendar1_SelectionChanged (object sender,
       System.EventArgs e)
    {
       SelectedDatesCollection theDates = Calendar1.SelectedDates;
       TimeSpan timeSpan = theDates[theDates.Count-1] - theDates[0];
       TextBox1.Text = 
          String.Format("You have selected {0} day(s).", timeSpan.Days + 1);
    }   
    

Siehe auch

Aufgaben

Gewusst wie: Programmgesteuerte Datumsauswahl in einem Calendar-Webserversteuerelement

Konzepte

Übersicht über das Calendar-Webserversteuerelement