Freigeben über


Calendar.OnDayRender-Methode

Löst das DayRender-Ereignis des Calendar-Steuerelements aus und ermöglicht das Angeben eines benutzerdefinierten Handlers für das DayRender-Ereignis.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Protected Overridable Sub OnDayRender ( _
    cell As TableCell, _
    day As CalendarDay _
)
'Usage
Dim cell As TableCell
Dim day As CalendarDay

Me.OnDayRender(cell, day)
protected virtual void OnDayRender (
    TableCell cell,
    CalendarDay day
)
protected:
virtual void OnDayRender (
    TableCell^ cell, 
    CalendarDay^ day
)
protected void OnDayRender (
    TableCell cell, 
    CalendarDay day
)
protected function OnDayRender (
    cell : TableCell, 
    day : CalendarDay
)

Parameter

  • cell
    Eine TableCell, die Informationen zur wiederzugebenden Zelle enthält.
  • day
    Ein CalendarDay, der Informationen zu dem wiederzugebenden Tag enthält.

Hinweise

Datenbindungen werden für das Calendar-Steuerelement nicht unterstützt. Sie können jedoch Inhalt und Formatierung der einzelnen Datumszellen ändern. Vor der Anzeige des Calendar-Steuerelements auf der Webseite erstellt und assembliert dieses die Komponenten, die das Steuerelement bilden. Das DayRender-Ereignis wird beim Erstellen jeder einzelnen Datumszelle im Calendar-Steuerelement ausgelöst. Sie können beim Erstellen einer Datumszelle Inhalt und Formatierung steuern, indem Sie Code im Ereignishandler für das DayRender-Ereignis bereitstellen.

Der Ereignishandler empfängt ein DayRenderEventArgs-Objekt, das Ereignisdaten enthält. Das DayRenderEventArgs-Objekt enthält zwei Eigenschaften, mit denen Sie programmgesteuert das Format der Datumszelle steuern können. Die Cell-Eigenschaft stellt die wiederzugebende Zelle dar, während die Day-Eigenschaft das in der Zelle wiederzugebende Datum darstellt.

Sie können den Inhalt einer Zelle auch anpassen, indem Sie der Control.Controls-Auflistung der Cell-Eigenschaft dynamisch Steuerelemente hinzufügen.

Hinweis

Da das DayRender-Ereignis während der Wiedergabe des Calendar-Steuerelements ausgelöst wird, dürfen Sie kein Steuerelement hinzufügen, das ebenfalls ein Ereignis auslösen kann, z. B. LinkButton. Sie können nur statische Steuerelemente hinzufügen, z. B. System.Web.UI.LiteralControl, Label, Image und HyperLink.

Durch das Auslösen eines Ereignisses wird der Ereignishandler über einen Delegaten aufgerufen. Weitere Informationen finden Sie unter Ereignisse und Delegaten.

Die OnDayRender-Methode ermöglicht es abgeleiteten Klassen auch, das Ereignis ohne Anfügen eines Delegaten zu behandeln. Dies ist das bevorzugte Verfahren für die Behandlung des Ereignisses in einer abgeleiteten Klasse.

Hinweise für Erben Wenn Sie OnDayRender in einer abgeleiteten Klasse überschreiben, müssen Sie sicherstellen, dass die OnDayRender-Methode der Basisklasse aufgerufen wird, damit registrierte Delegaten das Ereignis empfangen.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie für das DayRender-Ereignis ein Handler angegeben und codiert wird, um eine gelbe Hintergrundfarbe für die Tage im angezeigten Monat festzulegen. Darüber hinaus wird gezeigt, wie der Inhalt einer Zelle angepasst wird, indem der Zelle ein System.Web.UI.LiteralControl hinzugefügt wird.

<%@ Page Language="VB" AutoEventWireup="True" %>
<html>
<head>

   <script language="VB" runat="server">
   
        Sub DayRender(source As Object, e As DayRenderEventArgs)
            
            ' Change the background color of the days in the month
            ' to yellow.
            If Not e.Day.IsOtherMonth And Not e.Day.IsWeekend Then
                e.Cell.BackColor = System.Drawing.Color.Yellow
            End If 
            ' Add custom text to cell in the Calendar control.
            If e.Day.Date.Day = 18 Then
                e.Cell.Controls.Add(New LiteralControl(ChrW(60) & "br" & ChrW(62) & "Holiday"))
            End If 
        End Sub 'DayRender 

   </script>
 
</head>
 
<body>
 
   <form runat="server">

      <h3>DayRender Event Example</h3>
 
      <asp:Calendar id="calendar1" 
                    OnDayRender="DayRender"
                    runat="server">

         <WeekendDayStyle BackColor="gray">
         </WeekendDayStyle>

      </asp:Calendar>
                   
   </form>
          
</body>
</html>
   
<%@ Page Language="C#" AutoEventWireup="True" %>
<html>
<head>

   <script language="C#" runat="server">
   
      void DayRender(Object source, DayRenderEventArgs e) 
      {

         // Change the background color of the days in the month
         // to yellow.
         if (!e.Day.IsOtherMonth && !e.Day.IsWeekend)
            e.Cell.BackColor=System.Drawing.Color.Yellow;

         // Add custom text to cell in the Calendar control.
         if (e.Day.Date.Day == 18)
            e.Cell.Controls.Add(new LiteralControl("<br>Holiday"));

      }

   </script>
 
</head>
 
<body>
 
   <form runat="server">

      <h3>DayRender Event Example</h3>
 
      <asp:Calendar id="calendar1" 
                    OnDayRender="DayRender"
                    runat="server">

         <WeekendDayStyle BackColor="gray">
         </WeekendDayStyle>

      </asp:Calendar>
                   
   </form>
          
</body>
</html>
   
<%@ Page Language="JScript" AutoEventWireup="True" %>
<html>
<head>

   <script language="JScript" runat="server">
   
      function DayRender(source : Object, e : DayRenderEventArgs) 
      {

         // Change the background color of the days in the month
         // to yellow.
         if (!e.Day.IsOtherMonth && !e.Day.IsWeekend)
            e.Cell.BackColor=System.Drawing.Color.Yellow;

         // Add custom text to cell in the Calendar control.
         if (e.Day.Date.Day == 18)
            e.Cell.Controls.Add(new LiteralControl("<br>Holiday"));

      }

   </script>
 
</head>
 
<body>
 
   <form runat="server">

      <h3>DayRender Event Example</h3>
 
      <asp:Calendar id="calendar1" 
                    OnDayRender="DayRender"
                    runat="server">

         <WeekendDayStyle BackColor="gray">
         </WeekendDayStyle>

      </asp:Calendar>
                   
   </form>
          
</body>
</html>
   
<%@ Page Language="VB" AutoEventWireup="True" %>
<html>
<head>

   <script runat="server">
   
      Sub DayRender(sender as Object, e As DayRenderEventArgs) 

         ' Change the background color of the days in the month
         ' to yellow.
         If (Not e.Day.IsOtherMonth) And (Not e.Day.IsWeekend) Then
        
            e.Cell.BackColor=System.Drawing.Color.Yellow
         
         End If

         ' Add custom text to cell in the Calendar control.
         If e.Day.Date.Day = 18 Then
         
            e.Cell.Controls.Add(New LiteralControl("<br>Holiday"))
         
         End If

      End Sub

      Sub Page_Load(sender As Object, e As EventArgs)

         ' Manually register the event-handling method for the DayRender  
         ' event of the Calendar control.
         AddHandler Calendar1.DayRender, AddressOf DayRender

      End Sub

   </script>
 
</head>
 
<body>
 
   <form runat="server">

      <h3>Calendar DayRender Example</h3>
 
      <asp:Calendar id="Calendar1" 
                    runat="server">

         <WeekendDayStyle BackColor="gray">
         </WeekendDayStyle>

      </asp:Calendar>
                   
   </form>
          
</body>
</html>
   
<%@ Page Language="C#" AutoEventWireup="True" %>
<html>
<head>

   <script runat="server">
   
      void DayRender(Object sender, DayRenderEventArgs e) 
      {

         // Change the background color of the days in the month
         // to yellow.
         if (!e.Day.IsOtherMonth && !e.Day.IsWeekend)
         {
            e.Cell.BackColor=System.Drawing.Color.Yellow;
         }

         // Add custom text to cell in the Calendar control.
         if (e.Day.Date.Day == 18)
         {
            e.Cell.Controls.Add(new LiteralControl("<br>Holiday"));
         }

      }

      void Page_Load(Object sender, EventArgs e)
      {

         // Manually register the event-handling method for the DayRender  
         // event of the Calendar control.
         Calendar1.DayRender += new DayRenderEventHandler(this.DayRender);

      }

   </script>
 
</head>
 
<body>
 
   <form runat="server">

      <h3>Calendar DayRender Example</h3>
 
      <asp:Calendar id="Calendar1" 
                    runat="server">

         <WeekendDayStyle BackColor="gray">
         </WeekendDayStyle>

      </asp:Calendar>
                   
   </form>
          
</body>
</html>
   

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

Calendar-Klasse
Calendar-Member
System.Web.UI.WebControls-Namespace
DayRender
TableCell
CalendarDay

Weitere Ressourcen

Calendar-Webserver-Steuerelement