Calendar.OnDayRender(TableCell, CalendarDay) Methode

Definition

Löst das DayRender-Ereignis des Calendar-Steuerelements aus und ermöglicht das Angeben eines benutzerdefinierten Handlers für das DayRender-Ereignis.Raises the DayRender event of the Calendar control and allows you to provide a custom handler for the DayRender event.

protected:
 virtual void OnDayRender(System::Web::UI::WebControls::TableCell ^ cell, System::Web::UI::WebControls::CalendarDay ^ day);
protected virtual void OnDayRender (System.Web.UI.WebControls.TableCell cell, System.Web.UI.WebControls.CalendarDay day);
abstract member OnDayRender : System.Web.UI.WebControls.TableCell * System.Web.UI.WebControls.CalendarDay -> unit
override this.OnDayRender : System.Web.UI.WebControls.TableCell * System.Web.UI.WebControls.CalendarDay -> unit
Protected Overridable Sub OnDayRender (cell As TableCell, day As CalendarDay)

Parameter

cell
TableCell

Eine TableCell, die Informationen zur zu rendernden Zelle enthält.A TableCell that contains information about the cell to render.

day
CalendarDay

Ein CalendarDay, der Informationen zu dem zu rendernden Tag enthält.A CalendarDay that contains information about the day to render.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie einen Handler für das-Ereignis angeben und Codieren DayRender , um die Hintergrundfarbe für die Tage im angezeigten Monat gelb zu machen.The following code example demonstrates how to specify and code a handler for the DayRender event to make the background color yellow for the days in the displayed month. Außerdem wird veranschaulicht, wie Sie den Inhalt einer Zelle anpassen, indem Sie System.Web.UI.LiteralControl der Zelle ein Steuerelement hinzufügen.It also demonstrates how to customize the contents of a cell by adding a System.Web.UI.LiteralControl control to the cell.

<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>DayRender Event Example</title>
<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 id="form1" 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" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>DayRender Event Example</title>
<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 id="form1" 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" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Calendar DayRender Example</title>
<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 id="form1" runat="server">

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

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

      </asp:Calendar>
                   
   </form>
          
</body>
</html>
   
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Calendar DayRender Example</title>
<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 id="form1" runat="server">

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

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

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

Hinweise

Obwohl die Datenbindung für das-Steuerelement nicht unterstützt wird Calendar , ist es möglich, den Inhalt und die Formatierung der einzelnen Datums Zellen zu ändern.Although data binding is not supported for the Calendar control, it is possible to modify the content and formatting of the individual date cells. Bevor das- Calendar Steuerelement auf der Webseite angezeigt wird, werden die Komponenten, die das-Steuerelement bilden, erstellt und assembliert.Before the Calendar control is displayed on the Web page, it creates and assembles the components that make up the control. Das- DayRender Ereignis wird ausgelöst, wenn jede Datums Zelle im- Calendar Steuerelement erstellt wird.The DayRender event is raised when each date cell in the Calendar control is created. Sie können den Inhalt und die Formatierung einer Datums Zelle bei der Erstellung steuern, indem Sie Code im-Ereignishandler für das-Ereignis bereitstellen DayRender .You can control the contents and formatting of a date cell when it is created by providing code in the event handler for the DayRender event.

Der Ereignishandler empfängt ein- DayRenderEventArgs Objekt, das Ereignisdaten enthält.The event handler receives a DayRenderEventArgs object that contains event data. Das- DayRenderEventArgs Objekt enthält zwei Eigenschaften, die Sie verwenden können, um das Format der Datums Zelle Programm gesteuert zu steuern.The DayRenderEventArgs object contains two properties that you can use to programmatically control the format of the date cell. Die- Cell Eigenschaft stellt die Zelle dar, die gerendert wird, während die Day Eigenschaft das in der Zelle zu rendernde Datum darstellt.The Cell property represents the cell being rendered, while the Day property represents the date to render in the cell.

Sie können den Inhalt einer Zelle auch anpassen, indem Sie der-Auflistung der-Eigenschaft dynamisch Steuerelemente hinzufügen Control.Controls Cell .You can also customize the contents of a cell by dynamically adding controls to the Control.Controls collection of the Cell property.

Hinweis

Da das- DayRender Ereignis ausgelöst wird, während das- Calendar Steuerelement gerendert wird, können Sie kein-Steuerelement hinzufügen, das auch ein-Ereignis (z LinkButton . b.Because the DayRender event is raised while the Calendar control is being rendered, you cannot add a control that can also raise an event, such as LinkButton. Sie können nur statische Steuerelemente hinzufügen, System.Web.UI.LiteralControl z Label . b.,, Image und HyperLink .You can only add static controls, such as System.Web.UI.LiteralControl, Label, Image, and HyperLink.

Durch das Auslösen eines Ereignisses wird der Ereignishandler über einen Delegaten aufgerufen.Raising an event invokes the event handler through a delegate. Weitere Informationen finden Sie unter behandeln und Auswerfen von Ereignissen.For more information, see Handling and Raising Events.

Mit der OnDayRender-Methode können auch abgeleitete Klassen das Ereignis ohne Anfügen eines Delegaten behandeln.The OnDayRender method also allows derived classes to handle the event without attaching a delegate. Dies ist das bevorzugte Verfahren für die Behandlung des Ereignisses in einer abgeleiteten Klasse.This is the preferred technique for handling the event in a derived class.

Hinweise für Vererber

Wenn Sie OnDayRender(TableCell, CalendarDay) in einer abgeleiteten Klasse überschreiben, müssen Sie die OnDayRender(TableCell, CalendarDay)-Methode der Basisklasse aufrufen, damit registrierte Delegaten das Ereignis empfangen.When overriding OnDayRender(TableCell, CalendarDay) in a derived class, be sure to call the base class's OnDayRender(TableCell, CalendarDay) method so that registered delegates receive the event.

Gilt für:

Siehe auch