Calendar.OnDayRender(TableCell, CalendarDay) Método

Definição

Gera o evento DayRender do controle Calendar e permite que você forneça um manipulador personalizado para o evento DayRender.

protected virtual void OnDayRender (System.Web.UI.WebControls.TableCell cell, System.Web.UI.WebControls.CalendarDay day);

Parâmetros

cell
TableCell

Um TableCell que contém informações sobre a célula a ser renderizada.

day
CalendarDay

Um CalendarDay que contém informações sobre o dia a ser renderizado.

Exemplos

O exemplo de código a seguir demonstra como especificar e codificar um manipulador para o DayRender evento para tornar a cor da tela de fundo amarela para os dias no mês exibido. Ele também demonstra como personalizar o conteúdo de uma célula adicionando um System.Web.UI.LiteralControl controle à célula.

<%@ 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="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>

Comentários

Embora não haja suporte para a associação de dados para o Calendar controle, é possível modificar o conteúdo e a formatação das células de data individuais. Antes que o Calendar controle seja exibido na página da Web, ele cria e monta os componentes que compõem o controle. O DayRender evento é gerado quando cada célula de data no Calendar controle é criada. Você pode controlar o conteúdo e a formatação de uma célula de data quando ela é criada fornecendo código no manipulador de eventos para o DayRender evento.

O manipulador de eventos recebe um DayRenderEventArgs objeto que contém dados de evento. O DayRenderEventArgs objeto contém duas propriedades que você pode usar para controlar programaticamente o formato da célula de data. A Cell propriedade representa a célula que está sendo renderizada, enquanto a Day propriedade representa a data a ser renderizada na célula.

Você também pode personalizar o conteúdo de uma célula adicionando dinamicamente controles à Control.Controls coleção da Cell propriedade.

Observação

Como o DayRender evento é gerado enquanto o Calendar controle está sendo renderizado, você não pode adicionar um controle que também pode gerar um evento, como LinkButton. Você só pode adicionar controles estáticos, como System.Web.UI.LiteralControl, Label, Imagee HyperLink.

A geração de um evento invoca o manipulador de eventos por meio de um delegado. Para obter mais informações, consulte Manipulando e levantando eventos.

O OnDayRender método também permite que classes derivadas manipulem o evento sem anexar um delegado. Essa é a técnica preferencial para lidar com o evento em uma classe derivada.

Notas aos Herdeiros

Ao substituir OnDayRender(TableCell, CalendarDay) em uma classe derivada, chame o método da OnDayRender(TableCell, CalendarDay) classe base para que os delegados registrados recebam o evento.

Aplica-se a

Produto Versões
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Confira também