Calendar Function





1.00/5 (9 votes)
Function that returns a calendar in code-behind at run-time not a web-control but similar
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