ASP.NET - Exibindo feriados com ASP.NET
A utilização do objeto Calendar já foi abordada em dois artigos:
Neste artigo irei mostrar como você pode destacar no calendários dias especiais como feriados , aniversários e outros lembretes. Neste artigo não irei mostrar uma forma automatizada de fazer isto . Por questão de simplicidade irei apenas mostrar como você pode atribuir no seu código os textos vinculados ao dia e exibir o resultado no calendário.
Abaixo temos o resultado que poderá ser obtido ao ser executado o código do arquivo Feriados.aspx.
Para vê-lo funcionando clique aqui -> Feriados.aspx
Para implementar o código do exemplo vou usar o WebMatrix. Abra o Web Matrix e clique no Menu File | New. Você verá a tela a seguir. Agora selecione as opções conforme abaixo:
Na guia Design inclua o objeto Calendar conforme figura abaixo:
Na guia HTML já podemos ver o código gerado pelo Web Matrix conforme abaixo:
Dim
Feriados(12,31) As String
Na guia Code iremos defnir um array com duas dimensões contendo
o número máximo de meses e o número máximo de dias.
No evento Page_Load
iremos atribuir alguns textos relacionando-os com os dias dos
feriados ou dias especiais. Assim ao fazer :
feriados(9,8)
= "Aniversário"
estou atribuindo o texto Aniversário ao dia 8 do mês 9.
A rotina Chama_dia esta vinculada ao evento OnDayRender do calendário de forma que quando houver mudança no mês ou ano os dias sejam atualizados.
Para encerrar o código completo do arquivo Feriados.aspx
<%@
Page Language="vb" %> <script runat="server"> 'definindo um array com o número máximo de dias e número máximo de dias Dim feriados(12, 31) As String 'atribui os feriados ao array Sub Page_Load(Source as Object, E as EventArgs) feriados(9, 8) = "Aniversário" feriados(9, 23) = "Aniversário - Esposa" feriados(1,1) = "Ano Novo" feriados(9,7)="Dia da Independência" feriados(12,25)="Natal" feriados(011,02)="Finados" End Sub Sub Chama_Dia(sender As Object, e As DayRenderEventArgs) If e.Day.IsOtherMonth Then e.Cell.Controls.Clear() Else Dim aData As Date = e.Day.Date Dim aFeriado As String = feriados(aData.Month, aData.Day) If (Not aFeriado Is Nothing) Then Dim aLabel As Label = New Label() aLabel.Font.Name = "Verdana" aLabel.Font.Size = FontUnit.Point(10) aLabel.Text = "<br>" & aFeriado e.Cell.Controls.Add(aLabel) End If End If End Sub </script> <html> <head> <title>Feriados no ASP.Net</title> </head> <body> <form id="form1" runat="server"> <p> Exibindo Feridados com ASP.NET </p> <p> <asp:Calendar id="cal1" runat="server" DayHeaderStyle-BackColor="LightGray" DayHeaderStyle-Font-Bold="True" TodayDayStyle-Font-Size="12pt"_ TodayDayStyle-Font-Italic="True" TodayDayStyle-Font-Bold="True" _ OtherMonthDayStyle-ForeColor="blue" TitleStyle-Height="36px" _ TitleStyle-Font-Bold="True" TitleStyle-BackColor="#DEFFFF" _ SelectedDayStyle-forecolor="Blue" SelectedDayStyle-Backcolor="#DEFFFF" _ OnDayRender="Chama_Dia" ShowGridLines="true" Width="75%" Borderwidth="1" _ Forecolor="Black" Backcolor="aqua" _="_"></asp:Calendar> </p> <p> Quer saber mais sobre ASP.NET ? visite : _ <a href="http://www.macoratti.net">www.macoratti.net</a> </p> </form> </body> </html> |
Aguarde em breve mais artigos sobre o objeto Calendar.
José Carlos Macoratti