Click here to Skip to main content
Licence 
First Posted 7 Apr 2004
Views 54,641
Bookmarked 14 times

Calendar Function

By | 7 Apr 2004 | Article
Function that returns a calendar in code-behind at run-time not a web-control but similar

Sample Image - screenshot.gif

Introduction

This is not a web-Control is only a function that returns a Calendar at Run-Time in Code-Behind you can put it any were in this example it apears inside a datagrid:

The function on it self is very easy to understand it gos as falow:

Function cria_calendario_nesta_celula2(Celula _
   as System.Web.UI.WebControls.TableCell,_
   nomes_dos_campos as string, label_nome as string)
      Dim Tabela as New System.Web.UI.WebControls.Table
      Tabela.id = "Tabela" & nomes_dos_campos
      Dim Linha as New System.Web.UI.WebControls.TableRow
      Linha.id = "Linha" & nomes_dos_campos
      Dim Label as New System.Web.UI.WebControls.Label
      Label.id = "Label" & nomes_dos_campos
      Dim _cellx as New System.Web.UI.WebControls.TableCell
      if label_nome = "S" ' Cria uma label com o nome do campo
      _cellx = new TableCell()
       _cellx.Controls.Add(new LiteralControl(nomes_dos_campos.ToString))
       Celula.Controls.Add(_cellx)
      End if

      'Para o Calendario da Data
      _cellx = new TableCell()
      Dim Calendar_tmp as New System.Web.UI.WebControls.Calendar
      Calendar_tmp.CssClass="Under"
      Calendar_tmp.id = "Calendar_" & nomes_dos_campos

      Calendar_tmp.EnableViewState = true      
      Calendar_tmp.TodaysDate = System.Date.Today
      Calendar_tmp.VisibleDate = System.Date.Today      

      Calendar_tmp.TitleFormat = TitleFormat.MonthYear
      Calendar_tmp.SelectionMode = CalendarSelectionMode.Day
      Calendar_tmp.TodaysDate = System.Date.Today      
      Calendar_tmp.NextPrevFormat = NextPrevFormat.CustomText
      'Estas duas propriedades fazem um encoder 
      'em html dai que admitem qualquer tag ....
      Calendar_tmp.NextMonthText = "<img border='0'" & _ 
          " src='../img/calendar_seta_v.gif' WIDTH='20' HEIGHT='10'>" 
      Calendar_tmp.PrevMonthText = "<img border='0'" & _ 
          " src='../img/calendar_seta_e.gif' WIDTH='20' HEIGHT='10'>" 
      'Estas duas propriedades fazem um encoder em html
      'dai que admitem qualquer tag ....

      Calendar_tmp.CellPadding  = 0
      Calendar_tmp.CellSpacing  = 0
      Calendar_tmp.Height = Unit.Pixel(100)
      Calendar_tmp.Width = Unit.Pixel(150)
      Calendar_tmp.ShowGridlines = True

      Calendar_tmp.ApplyStyle(S_Calendar_01) '1
      Calendar_tmp.TitleStyle.MergeWith(S_Calendar_08) '8
      Calendar_tmp.NextPrevStyle.MergeWith(S_Calendar_09) '9
      Calendar_tmp.DayHeaderStyle.MergeWith(S_Calendar_02) '2
      Calendar_tmp.DayStyle.MergeWith(S_Calendar_03) '3
      Calendar_tmp.WeekendDayStyle.MergeWith(S_Calendar_04) '4
      Calendar_tmp.SelectedDayStyle.MergeWith(S_Calendar_05) '5
      Calendar_tmp.TodayDayStyle.MergeWith(S_Calendar_06) '6
      Calendar_tmp.OtherMonthDayStyle.MergeWith(S_Calendar_07) '7

 

      AddHandler Calendar_tmp.SelectionChanged, _
                  AddressOf CAL_Selecionou_uma_data
      AddHandler Calendar_tmp.DayRender,_
                  AddressOf Tarefas_Calendar_OnDayRender

 

      'Para as DropDownList's da Data e Ano
      Dim DDL_tmp_Ano as New System.Web.UI.WebControls.DropDownList
      DDL_tmp_Ano.ApplyStyle(S_DropDownList_03)
      Dim DDL_tmp_Mes as New System.Web.UI.WebControls.DropDownList
      DDL_tmp_Mes.ApplyStyle(S_DropDownList_02)
      Dim ii_ddl, ii_ddl2, jj_ddl as integer
      ii_ddl2 = 0
      jj_ddl = 2020
      For ii_ddl = 1900 to jj_ddl
       DDL_tmp_Ano.Items.Insert(ii_ddl2, new ListItem(ii_ddl))
       ii_ddl2 = ii_ddl2 +1
      next
      ii_ddl = 1
      jj_ddl = 12
      For ii_ddl = 0 To jj_ddl
       DDL_tmp_Mes.Items.Insert(ii_ddl, new ListItem(ii_ddl))
      Next

      DDL_tmp_Mes.Items.remove(0)
      DDL_tmp_Ano.Items.remove(0)
      DDL_tmp_Ano.Items.remove(1)
      DDL_tmp_Ano.SelectedIndex = Calendar_tmp.TodaysDate.Year - 1900
      DDL_tmp_Mes.SelectedIndex = Calendar_tmp.TodaysDate.Month - 1
      AddHandler DDL_tmp_Mes.SelectedIndexChanged,_
                   AddressOf DDL_Selecionou_uma_data
      AddHandler DDL_tmp_Ano.SelectedIndexChanged,_
                   AddressOf DDL_Selecionou_uma_data
      DDL_tmp_Mes.id = "Calendar_Mes_" & nomes_dos_campos
      DDL_tmp_Ano.id = "Calendar_Ano_" & nomes_dos_campos

      'Para a TextBox da Data
      Dim TB as New System.Web.UI.WebControls.TextBox
      TB.ApplyStyle(S_TextBox_03)
      TB.text = Calendar_tmp.TodaysDate.ToShortDateString()
      TB.id = nomes_dos_campos
      TB.Columns= 10
      TB.rows= 10
      TB.MaxLength= 10
      TB.Enabled="False"


      'Para o Butao das DDL e Calendario
      Dim Butt_tmp as New System.Web.UI.WebControls.imageButton
      Butt_tmp.ImageAlign = ImageAlign.AbsBottom
      Butt_tmp.BorderWidth = Unit.Pixel(1)
      Butt_tmp.BorderStyle = BorderStyle.Ridge
      Butt_tmp.ImageUrl="calendar_icon.gif"
      Butt_tmp.ToolTip="Abre / Fecha Calendário"
      Butt_tmp.Width = Unit.Pixel(22) 'Unit.Point(10)
      Butt_tmp.Height = Unit.Pixel(21) 'Unit.Point(10)


      Dim Butt_load as New System.Web.UI.WebControls.Button
      Butt_load.id = "Butt_load" & nomes_dos_campos
      Butt_load.CssClass="Button_Load"
      Butt_load.CausesValidation="false"
      Butt_load.visible="false"
      Butt_load.Font.name = "Verdana"
      Butt_load.BackColor = System.Drawing.Color.Green
      Butt_load.ForeColor = System.Drawing.Color.White
      Butt_load.Font.Bold = "true"
      Butt_load.text = "OK"
      AddHandler Butt_load.click, AddressOf Butt_load_Selecionou_uma_data


      Butt_tmp.CssClass="Button"
      Butt_tmp.CausesValidation="false"
      Butt_tmp.id = "Butt_" & nomes_dos_campos
      Butt_tmp.Font.name = "webdings"
      'Para o botao de aparece/desaparece calendario
      AddHandler Butt_tmp.click, AddressOf Butt_click
      'Adiciona os controls da Data - TextBox - DropDownList - Calendario
      DDL_tmp_Mes.visible="false"
      DDL_tmp_Ano.visible="false"
      Calendar_tmp.visible="false"

      _cellx.id = "CelulaCalendario" & nomes_dos_campos
      _cellx.Controls.Add(TB)
      _cellx.Controls.Add(Butt_tmp)
      _cellx.Controls.Add(Calendar_tmp)
      _cellx.Controls.Add(DDL_tmp_Mes)
      _cellx.Controls.Add(DDL_tmp_Ano)
      _cellx.Controls.Add(Butt_load)
      _cellx.VerticalAlign = VerticalAlign.Middle
      _cellx.HorizontalAlign = HorizontalAlign.Left
      Linha.Cells.Add(_cellx)
      Tabela.Rows.Add(Linha)


      if label_nome = "Place" then

      Celula.Controls.Add(TB)
      Celula.Controls.Add(Butt_tmp)
      Celula.Controls.Add(Calendar_tmp)
      Celula.Controls.Add(DDL_tmp_Mes)
      Celula.Controls.Add(DDL_tmp_Ano)
      Celula.Controls.Add(Butt_load)
      Celula.VerticalAlign = VerticalAlign.Middle
      Else
      if Label_nome = "N"
      Celula.Controls.Add(_cellx)
      End if
      End if
     End Function

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Jose Xavier

Web Developer

Portugal Portugal

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralEnglish please! PinmemberBjrn Spruit23:32 18 Feb '07  
QuestionEnglish? PinmemberWhite X Dragon16:53 9 Jul '05  
GeneralQuick suggestions: PinmemberShog915:25 8 Apr '04  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web02 | 2.5.120517.1 | Last Updated 8 Apr 2004
Article Copyright 2004 by Jose Xavier
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid