1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
|
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
<DefaultProperty("DateAffichage"), ToolboxData("<{0}:Calendrier runat=server></{0}:Calendrier>")> _
Public Class Calendrier
Inherits CompositeControl
Private txtDate As TextBox
Private calend As AjaxControlToolkit.CalendarExtender
Private dteMask As AjaxControlToolkit.MaskedEditExtender
Private dteMaskValid As AjaxControlToolkit.MaskedEditValidator
Private btnImg As ImageButton
<Bindable(True), Category("Appearance"), DefaultValue(""), Localizable(True), Description("Date à afficher au démarrage")> _
Public Property DateAffichage() As DateTime
Get
EnsureChildControls()
If IsDate(txtDate.Text) Then
Return txtDate.Text
Else 'Cas Vide
Return Nothing
End If
End Get
Set(ByVal Value As DateTime)
EnsureChildControls()
txtDate.Text = Value
If Value <> Nothing Then calend.SelectedDate = Value
End Set
End Property
<Bindable(True), Category("Comportement"), DefaultValue(""), Localizable(True), Description("Date à afficher au démarrage")> _
Public Property DateObligatoire() As Boolean
Get
EnsureChildControls()
If ViewState("CalendrierDateObligatoire") Is Nothing Then ViewState("CalendrierDateObligatoire") = False
Return CBool(ViewState("CalendrierDateObligatoire"))
End Get
Set(ByVal Value As Boolean)
EnsureChildControls()
ViewState("CalendrierDateObligatoire") = Value
dteMaskValid.IsValidEmpty = Not Value
If Value AndAlso txtDate.Text.Trim.Length = 0 Then calend.SelectedDate = Now
End Set
End Property
<Bindable(True), Category("Appearance"), DefaultValue(""), Localizable(True), Description("Image du calendrier")> _
Public Property URLImageCalendrier() As String
Get
EnsureChildControls()
Return btnImg.ImageUrl
End Get
Set(ByVal Value As String)
EnsureChildControls()
btnImg.ImageUrl = Value
End Set
End Property
<Bindable(True), Category("Appearance"), DefaultValue(""), Description("Error message for the date empty validator.")> _
Public Property MessageErrorEmpty() As String
Get
EnsureChildControls()
Return dteMaskValid.EmptyValueMessage
End Get
Set(ByVal value As String)
EnsureChildControls()
dteMaskValid.EmptyValueMessage = value
End Set
End Property
< _
Bindable(True), _
Category("Appearance"), _
DefaultValue(""), _
Description("Error message for the date invalid validator.") _
> _
Public Property DateInvalidErrorMessage() As String
Get
EnsureChildControls()
Return dteMaskValid.InvalidValueMessage
End Get
Set(ByVal value As String)
EnsureChildControls()
dteMaskValid.InvalidValueMessage = value
End Set
End Property
<Bindable(True), Category("Appearance"), DefaultValue(""), Localizable(True), Description("Class à appliquer sur le textbox")> _
Public Property txtClass() As String
Get
EnsureChildControls()
If ViewState("CalendrierTxtCss") Is Nothing Then
Return ""
Else
Return CStr(ViewState("CalendrierTxtCss"))
End If
End Get
Set(ByVal Value As String)
EnsureChildControls()
ViewState("CalendrierTxtCss") = Value
txtDate.CssClass = Value
End Set
End Property
<Bindable(True), Category("Appearance"), DefaultValue(""), Localizable(True), Description("Class à appliquer sur le calendrier")> _
Public Property CalendClass() As String
Get
EnsureChildControls()
If ViewState("CalendrierCalCss") Is Nothing Then
Return ""
Else
Return CStr(ViewState("CalendrierCalCss"))
End If
End Get
Set(ByVal Value As String)
EnsureChildControls()
ViewState("CalendrierCalCss") = Value
calend.CssClass = Value
End Set
End Property
Protected Overrides Sub CreateChildControls()
Controls.Clear()
txtDate = New TextBox()
txtDate.ID = "txtDate1"
dteMask = New AjaxControlToolkit.MaskedEditExtender
dteMask.ID = "Mask1"
dteMask.TargetControlID = txtDate.ID
dteMask.CultureName = System.Globalization.CultureInfo.CurrentCulture.Name '"fr-FR"
dteMask.AcceptNegative = AjaxControlToolkit.MaskedEditShowSymbol.None
dteMask.AcceptAMPM = AjaxControlToolkit.MaskedEditShowSymbol.None
dteMask.DisplayMoney = AjaxControlToolkit.MaskedEditShowSymbol.None
dteMask.Mask = "99/99/9999"
dteMask.MaskType = AjaxControlToolkit.MaskedEditType.Date
dteMask.MessageValidatorTip = True
dteMaskValid = New AjaxControlToolkit.MaskedEditValidator
dteMaskValid.ID = "MV1"
dteMaskValid.ControlToValidate = txtDate.ID
dteMaskValid.ControlExtender = dteMask.ID
dteMaskValid.IsValidEmpty = Not DateObligatoire
dteMaskValid.EmptyValueMessage = MessageErrorEmpty
dteMaskValid.InvalidValueMessage = DateInvalidErrorMessage
btnImg = New ImageButton
btnImg.ID = "btnCalendrier1"
btnImg.ImageUrl = URLImageCalendrier
btnImg.CausesValidation = False
btnImg.ImageAlign = ImageAlign.Top
calend = New AjaxControlToolkit.CalendarExtender
calend.ID = "calend1"
calend.PopupButtonID = btnImg.ID
calend.Format = "dd/MM/yyyy"
calend.TargetControlID = txtDate.ID
Me.Controls.Add(txtDate)
Me.Controls.Add(dteMask)
Me.Controls.Add(btnImg)
Me.Controls.Add(calend)
Me.Controls.Add(dteMaskValid)
End Sub
Protected Overrides Sub RecreateChildControls()
EnsureChildControls()
End Sub
End Class |
Partager