In the DateTimePicker.ascx.vb (code behind) file i used the following code:
Partial Class App_Controls_CommonControls_DateTimePicker
Inherits System.Web.UI.UserControl
Private newDate As Date
Private newDateAsString As String
Private newTimeAsString As String
Private newUnformattedTimeAsString As String
Private myHour As String = ""
Private myMinute As String = ""
Private isAm As Boolean = False
Private isPm As Boolean = False
Private myHourFormat As String = "12"
Public Enum HourFormatEnum
Twelve = 12
TwentyFour = 24
End Enum
<ComponentModel.DefaultValue("Twelve")> _
Public Property HourPicker_Format() As HourFormatEnum
Get
Return myHourFormat
End Get
Set(ByVal value As HourFormatEnum)
myHourFormat = value
If myHourFormat = "12" Then
ddlAmPmPicker1.Visible = True
ElseIf myHourFormat = "24" Then
ddlAmPmPicker1.Visible = False
ddlHourPicker1.Items.Clear()
ddlHourPicker1.Items.Add("hrs")
ddlHourPicker1.Items.Add("0")
ddlHourPicker1.Items.Add("1")
ddlHourPicker1.Items.Add("2")
ddlHourPicker1.Items.Add("3")
ddlHourPicker1.Items.Add("4")
ddlHourPicker1.Items.Add("5")
ddlHourPicker1.Items.Add("6")
ddlHourPicker1.Items.Add("7")
ddlHourPicker1.Items.Add("8")
ddlHourPicker1.Items.Add("9")
ddlHourPicker1.Items.Add("10")
ddlHourPicker1.Items.Add("11")
ddlHourPicker1.Items.Add("12")
ddlHourPicker1.Items.Add("13")
ddlHourPicker1.Items.Add("14")
ddlHourPicker1.Items.Add("15")
ddlHourPicker1.Items.Add("16")
ddlHourPicker1.Items.Add("17")
ddlHourPicker1.Items.Add("18")
ddlHourPicker1.Items.Add("19")
ddlHourPicker1.Items.Add("20")
ddlHourPicker1.Items.Add("21")
ddlHourPicker1.Items.Add("22")
ddlHourPicker1.Items.Add("23")
End If
End If
If Not String.IsNullOrEmpty(myHour) Then
If ddlAmPmPicker1.Visible = True Then
If myHour = "0" Then
myHour = "12"
isAm = True
ElseIf CInt(myHour) > 12 Then
myHour = CStr(CInt(myHour) - 12)
isPm = True
ElseIf CInt(myHour) = 12 Then
myHour = "12"
isPm = True
Else
isAm = True
End If
End If
If ddlHourPicker1.Visible = True And ddlAmPmPicker1.Visible = True Then
ddlHourPicker1.SelectedIndex = ddlHourPicker1.Items.IndexOf(ddlHourPicker1.Items.FindByValue(myHour))
ddlMinutePicker1.SelectedIndex = ddlMinutePicker1.Items.IndexOf(ddlMinutePicker1.Items.FindByValue(myMinute))
If isAm Then
ddlAmPmPicker1.SelectedIndex = ddlAmPmPicker1.Items.IndexOf(ddlAmPmPicker1.Items.FindByValue("AM"))
ElseIf isPm Then
ddlAmPmPicker1.SelectedIndex = ddlAmPmPicker1.Items.IndexOf(ddlAmPmPicker1.Items.FindByValue("PM"))
End If
ElseIf ddlHourPicker1.Visible = True And ddlAmPmPicker1.Visible = False Then
ddlHourPicker1.SelectedIndex = ddlHourPicker1.Items.IndexOf(ddlHourPicker1.Items.FindByValue(myHour))
ddlMinutePicker1.SelectedIndex = ddlMinutePicker1.Items.IndexOf(ddlMinutePicker1.Items.FindByValue(myMinute))
End If
End If
End If
End Sub
Public Property DefaultDate() As String
Get
If txtDatePicker1.Visible = True Then
Return txtDatePicker1.Text
Else
Return ""
End If
End Get
Set(ByVal value As String)
If txtDatePicker1.Visible = True Then
If Not String.IsNullOrEmpty(value) Then
If IsDate(value) Then
txtDatePicker1.Text = value.ToString
ElseIf value.ToUpper.Substring(0, 3) = "NOW" Then
txtDatePicker1.Text = Now.ToShortDateString
End If
End If
End If
End Set
End Property
Public Property DefaultTime() As String
Get
If ddlHourPicker1.Visible = True And ddlAmPmPicker1.Visible = True Then
Return ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue & " " & _
ddlAmPmPicker1.SelectedValue
ElseIf ddlHourPicker1.Visible = True And ddlAmPmPicker1.Visible = False Then
Return ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue
Else
Return ""
End If
End Get
Set(ByVal value As String)
If String.IsNullOrEmpty(value) Then
Exit Property
End If
If value.ToUpper = "NOW" Then
myHour = Now.Hour.ToString
myMinute = Now.Minute.ToString
End If
If value.Contains(":") And IsDate(value) Then
myHour = Date.Parse(value).Hour.ToString
myMinute = Date.Parse(value).Minute.ToString
End If
If IsNumeric(value) Then
If value.Length = 4 Then
myHour = value.Substring(0, 2)
If myHour = "00" Then
myHour = "0"
End If
myMinute = value.Substring(2, 2)
ElseIf value.Length = 3 Then
myHour = value.Substring(0, 1)
myMinute = value.Substring(1, 2)
End If
End If
If myMinute.Length = 1 Then
myMinute = "0" & myMinute
End If
End Set
End Property
<ComponentModel.DefaultValue("False")> _
Public Property DateTimePicker_ReadOnly() As Boolean
Get
Return txtDatePicker1.ReadOnly
End Get
Set(ByVal value As Boolean)
If value = False Then
If txtDatePicker1.Visible = True Then
txtDatePicker1.ReadOnly = value
txtDatePicker1_CalendarExtender.Enabled = True
End If
If ddlHourPicker1.Visible = True Then
ddlHourPicker1.Enabled = True
ddlMinutePicker1.Enabled = True
End If
If ddlAmPmPicker1.Visible = True Then
ddlAmPmPicker1.Enabled = True
End If
ElseIf value = True Then
If txtDatePicker1.Visible = True Then
txtDatePicker1.ReadOnly = value
txtDatePicker1_CalendarExtender.Enabled = False
End If
If ddlHourPicker1.Visible = True Then
ddlHourPicker1.Enabled = False
ddlMinutePicker1.Enabled = False
End If
If ddlAmPmPicker1.Visible = True Then
ddlAmPmPicker1.Enabled = False
End If
End If
End Set
End Property
<ComponentModel.DefaultValue("True")> _
Public Property ShowDate() As Boolean
Get
Return txtDatePicker1.Visible
End Get
Set(ByVal value As Boolean)
txtDatePicker1.Visible = value
lblDatePicker1.Visible = value
divDatePicker1.Visible = value
divDatePicker2.Visible = value
If ddlHourPicker1.Visible = True Then
divDateTimeSpacingGap1.Visible = value
divDateTimeSpacingGap2.Visible = value
Else
divDateTimeSpacingGap1.Visible = False
divDateTimeSpacingGap2.Visible = False
End If
End Set
End Property
<ComponentModel.DefaultValue("True")> _
Public Property ShowTime() As Boolean
Get
Return ddlHourPicker1.Visible
End Get
Set(ByVal value As Boolean)
ddlHourPicker1.Visible = value
ddlMinutePicker1.Visible = value
divTimePicker1.Visible = value
divTimePicker2.Visible = value
If myHourFormat = "12" Then
ddlAmPmPicker1.Visible = value
ElseIf myHourFormat = "24" Then
ddlAmPmPicker1.Visible = False
End If
lblTimePicker1.Visible = value
lblColon.Visible = value
If txtDatePicker1.Visible = True Then
divDateTimeSpacingGap1.Visible = value
divDateTimeSpacingGap2.Visible = value
Else
divDateTimeSpacingGap1.Visible = False
divDateTimeSpacingGap2.Visible = False
End If
End Set
End Property
<ComponentModel.DefaultValue("True")> _
Public Property ShowHeaderLabels() As Boolean
Get
If lblDatePicker1.Visible = False And lblTimePicker1.Visible = False Then
Return False
Else
Return True
End If
End Get
Set(ByVal value As Boolean)
lblDatePicker1.Visible = value
lblTimePicker1.Visible = value
divHeaderLabels.Visible = value
End Set
End Property
Public ReadOnly Property SelectedDateAsDate() As Date
Get
Dim thatDate As String = ""
Dim thatTime As String = ""
If txtDatePicker1.Visible = True Then
If String.IsNullOrEmpty(txtDatePicker1.Text) Then
Return #12:00:00 AM#
End If
If IsDate(txtDatePicker1.Text) Then
thatDate = txtDatePicker1.Text
ElseIf Not IsDate(txtDatePicker1.Text) Then
Return #12:00:00 AM#
End If
End If
If ddlHourPicker1.Visible = True Then
If ddlHourPicker1.SelectedIndex < 1 Or ddlMinutePicker1.SelectedIndex < 1 Then
Return #12:00:00 AM#
End If
If ddlAmPmPicker1.Visible = True Then
thatTime = ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue & " " & _
ddlAmPmPicker1.SelectedValue
ElseIf ddlAmPmPicker1.Visible = False Then
thatTime = ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue
End If
End If
Dim tempDate As New StringBuilder
If txtDatePicker1.Visible = True And ddlHourPicker1.Visible = True Then
tempDate.Append(thatDate)
tempDate.Append(" " & thatTime)
ElseIf txtDatePicker1.Visible = True And ddlHourPicker1.Visible = False Then
tempDate.Append(thatDate)
ElseIf txtDatePicker1.Visible = False And ddlHourPicker1.Visible = True Then
tempDate.Append(thatTime)
End If
Public ReadOnly Property SelectedDateAsString() As String
Get
Dim thatDate As String = ""
Dim thatTime As String = ""
If txtDatePicker1.Visible = True Then
If String.IsNullOrEmpty(txtDatePicker1.Text) Then
Return ""
End If
If IsDate(txtDatePicker1.Text) Then
thatDate = txtDatePicker1.Text
ElseIf Not IsDate(txtDatePicker1.Text) Then
Return ""
End If
End If
If ddlHourPicker1.Visible = True Then
If ddlHourPicker1.SelectedIndex < 1 Or ddlMinutePicker1.SelectedIndex < 1 Then
Return ""
End If
If ddlAmPmPicker1.Visible = True Then
thatTime = Date.Parse(ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue & " " & _
ddlAmPmPicker1.SelectedValue).ToShortTimeString
ElseIf ddlAmPmPicker1.Visible = False Then
thatTime = Date.Parse(ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue).ToShortTimeString
End If
End If
Dim tempDate As New StringBuilder
If txtDatePicker1.Visible = True And ddlHourPicker1.Visible = True Then
tempDate.Append(thatDate)
tempDate.Append(" " & thatTime)
ElseIf txtDatePicker1.Visible = True And ddlHourPicker1.Visible = False Then
tempDate.Append(thatDate)
ElseIf txtDatePicker1.Visible = False And ddlHourPicker1.Visible = True Then
tempDate.Append(thatTime)
End If
newDateAsString = tempDate.ToString()
Return newDateAsString
End Get
End Property
Public ReadOnly Property SelectedTimeAsString() As String
Get
Dim thatTime As String = ""
If ddlHourPicker1.Visible = True Then
If ddlHourPicker1.SelectedIndex < 1 Or ddlMinutePicker1.SelectedIndex < 1 Then
Return ""
End If
If ddlAmPmPicker1.Visible = True Then
thatTime = Date.Parse(ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue & " " & _
ddlAmPmPicker1.SelectedValue).ToShortTimeString
ElseIf ddlAmPmPicker1.Visible = False Then
thatTime = Date.Parse(ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue).ToShortTimeString
End If
End If
newTimeAsString = thatTime
Return newTimeAsString
End Get
End Property
Public ReadOnly Property SelectedTimeAsUnformattedString() As String
Get
Dim thatTime As String = ""
If ddlHourPicker1.Visible = True Then
If ddlHourPicker1.SelectedIndex < 1 Or ddlMinutePicker1.SelectedIndex < 1 Then
Return ""
End If
If ddlAmPmPicker1.Visible = True Then
thatTime = ddlHourPicker1.SelectedValue & _
ddlMinutePicker1.SelectedValue & " " & _
ddlAmPmPicker1.SelectedValue
ElseIf ddlAmPmPicker1.Visible = False Then
thatTime = ddlHourPicker1.SelectedValue & _
ddlMinutePicker1.SelectedValue
End If
End If
newUnformattedTimeAsString = thatTime
Return newUnformattedTimeAsString
End Get
End Property
Public Property DatePicker_Width() As Integer
Get
Return CInt(txtDatePicker1.Width.ToString)
End Get
Set(ByVal value As Integer)
If txtDatePicker1.Visible = True Then
If IsNumeric(value) Then
txtDatePicker1.Width = value
End If
End If
End Set
End Property
Public Property DatePicker_Height() As Integer
Get
Return CInt(txtDatePicker1.Height.ToString)
End Get
Set(ByVal value As Integer)
If txtDatePicker1.Visible = True Then
If IsNumeric(value) Then
txtDatePicker1.Height = value
End If
End If
End Set
End Property
Public Property DatePicker_BackColor() As Drawing.Color
Get
Return txtDatePicker1.BackColor
End Get
Set(ByVal value As Drawing.Color)
If txtDatePicker1.Visible = True Then
txtDatePicker1.BackColor = value
End If
End Set
End Property
Public Property DatePicker_ForeColor() As Drawing.Color
Get
Return txtDatePicker1.ForeColor
End Get
Set(ByVal value As Drawing.Color)
If txtDatePicker1.Visible = True Then
txtDatePicker1.ForeColor = value
End If
End Set
End Property
<ComponentModel.DefaultValue(False)> _
Public Property DatePicker_AutoPostBack() As Boolean
Get
Return txtDatePicker1.AutoPostBack
End Get
Set(ByVal value As Boolean)
If txtDatePicker1.Visible = True Then
txtDatePicker1.AutoPostBack = value
End If
End Set
End Property
Public Property HourPicker_Width() As Integer
Get
Return CInt(ddlHourPicker1.Width.ToString)
End Get
Set(ByVal value As Integer)
If ddlHourPicker1.Visible = True Then
If IsNumeric(value) Then
ddlHourPicker1.Width = value
End If
End If
End Set
End Property
Public Property HourPicker_Height() As Integer
Get
Return CInt(ddlHourPicker1.Height.ToString)
End Get
Set(ByVal value As Integer)
If ddlHourPicker1.Visible = True Then
If IsNumeric(value) Then
ddlHourPicker1.Height = value
End If
End If
End Set
End Property
Public Property HourPicker_BackColor() As Drawing.Color
Get
Return ddlHourPicker1.BackColor
End Get
Set(ByVal value As Drawing.Color)
If ddlHourPicker1.Visible = True Then
ddlHourPicker1.BackColor = value
End If
End Set
End Property
Public Property HourPicker_ForeColor() As Drawing.Color
Get
Return ddlHourPicker1.ForeColor
End Get
Set(ByVal value As Drawing.Color)
If ddlHourPicker1.Visible = True Then
ddlHourPicker1.ForeColor = value
End If
End Set
End Property
<ComponentModel.DefaultValue(False)> _
Public Property HourPicker_AutoPostBack() As Boolean
Get
Return ddlHourPicker1.AutoPostBack
End Get
Set(ByVal value As Boolean)
If ddlHourPicker1.Visible = True Then
ddlHourPicker1.AutoPostBack = value
End If
End Set
End Property
Public Property MinutePicker_Width() As Integer
Get
Return CInt(ddlMinutePicker1.Width.ToString)
End Get
Set(ByVal value As Integer)
If ddlMinutePicker1.Visible = True Then
If IsNumeric(value) Then
ddlMinutePicker1.Width = value
End If
End If
End Set
End Property
Public Property MinutePicker_Height() As Integer
Get
Return CInt(ddlMinutePicker1.Height.ToString)
End Get
Set(ByVal value As Integer)
If ddlMinutePicker1.Visible = True Then
If IsNumeric(value) Then
ddlMinutePicker1.Height = value
End If
End If
End Set
End Property
Public Property MinutePicker_BackColor() As Drawing.Color
Get
Return ddlMinutePicker1.BackColor
End Get
Set(ByVal value As Drawing.Color)
If ddlMinutePicker1.Visible = True Then
ddlMinutePicker1.BackColor = value
End If
End Set
End Property
Public Property MinutePicker_ForeColor() As Drawing.Color
Get
Return ddlMinutePicker1.ForeColor
End Get
Set(ByVal value As Drawing.Color)
If ddlMinutePicker1.Visible = True Then
ddlMinutePicker1.ForeColor = value
End If
End Set
End Property
<ComponentModel.DefaultValue(False)> _
Public Property MinutePicker_AutoPostBack() As Boolean
Get
Return ddlMinutePicker1.AutoPostBack
End Get
Set(ByVal value As Boolean)
If ddlMinutePicker1.Visible = True Then
ddlMinutePicker1.AutoPostBack = value
End If
End Set
End Property
Public Property AmPmPicker_Width() As Integer
Get
Return CInt(ddlAmPmPicker1.Width.ToString)
End Get
Set(ByVal value As Integer)
If ddlAmPmPicker1.Visible = True Then
If IsNumeric(value) Then
ddlAmPmPicker1.Width = value
End If
End If
End Set
End Property
Public Property AmPmPicker_Height() As Integer
Get
Return CInt(ddlAmPmPicker1.Height.ToString)
End Get
Set(ByVal value As Integer)
If ddlAmPmPicker1.Visible = True Then
If IsNumeric(value) Then
ddlAmPmPicker1.Height = value
End If
End If
End Set
End Property
Public Property AmPmPicker_BackColor() As Drawing.Color
Get
Return ddlAmPmPicker1.BackColor
End Get
Set(ByVal value As Drawing.Color)
If ddlAmPmPicker1.Visible = True Then
ddlAmPmPicker1.BackColor = value
End If
End Set
End Property
Public Property AmPmPicker_ForeColor() As Drawing.Color
Get
Return ddlAmPmPicker1.ForeColor
End Get
Set(ByVal value As Drawing.Color)
If ddlAmPmPicker1.Visible = True Then
ddlAmPmPicker1.ForeColor = value
End If
End Set
End Property
<ComponentModel.DefaultValue(False)> _
Public Property AmPmPicker_AutoPostBack() As Boolean
Get
Return ddlAmPmPicker1.AutoPostBack
End Get
Set(ByVal value As Boolean)
If ddlAmPmPicker1.Visible = True Then
ddlAmPmPicker1.AutoPostBack = value
End If
End Set
End Property
<ComponentModel.DefaultValue("Default")> _
Public Property DatePicker_FirstDayOfWeek() As DayOfWeek
Get
Return txtDatePicker1_CalendarExtender.FirstDayOfWeek
End Get
Set(ByVal value As DayOfWeek)
txtDatePicker1_CalendarExtender.FirstDayOfWeek = value
End Set
End Property
<ComponentModel.DefaultValue("d")> _
Public Property DatePicker_Format() As DateFormat
Get
Return txtDatePicker1_CalendarExtender.Format
End Get
Set(ByVal value As DateFormat)
txtDatePicker1_CalendarExtender.Format = value
End Set
End Property
End Class
None
0 Points
2 Posts
Custom User Control - DateTimePicker
Feb 15, 2011 04:39 PM|wmivey|LINK
I have created a new custom user control that I would like some critique on if anyone has the time to review it (VS 2008, ASP.Net/VB.Net).
Create a web user control (ascx file). Call it whatever you would like (I called mine DateTimePicker.ascx).
In the DateTimePicker.ascx file i used the following code:
... in the declarations
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="DateTimePicker_cc1" %>...
...
... in the body
<table>
<div id="divHeaderLabels" runat="server">
<tr>
<div id="divDatePicker1" runat="server">
<td style="text-align: center">
<asp:Label ID="lblDatePicker1" runat="server" Text="Date"></asp:Label>
</td>
</div>
<div id="divDateTimeSpacingGap1" runat="server">
<td>
</td>
</div>
<div id="divTimePicker1" runat="server">
<td style="text-align: center">
<asp:Label ID="lblTimePicker1" runat="server" Text="Time"></asp:Label>
</td>
</div>
</tr>
</div>
<tr>
<div id="divDatePicker2" runat="server">
<td>
<asp:TextBox ID="txtDatePicker1" runat="server" Wrap="False" Width="78px" Style="text-align: center"></asp:TextBox>
<DateTimePicker_cc1:CalendarExtender ID="txtDatePicker1_CalendarExtender" runat="server"
Enabled="true" TargetControlID="txtDatePicker1">
</DateTimePicker_cc1:CalendarExtender>
<DateTimePicker_cc1:TextBoxWatermarkExtender ID="txtDatePicker1_TextBoxWatermarkExtender"
runat="server" TargetControlID="txtDatePicker1" WatermarkText="Select a date"
WatermarkCssClass="watermarked" />
</td>
</div>
<div id="divDateTimeSpacingGap2" runat="server">
<td>
</td>
</div>
<div id="divTimePicker2" runat="server">
<td>
<asp:DropDownList ID="ddlHourPicker1" runat="server">
</asp:DropDownList>
<asp:Label ID="lblColon" runat="server" Text=":"></asp:Label>
<asp:DropDownList ID="ddlMinutePicker1" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="ddlAmPmPicker1" runat="server">
</asp:DropDownList>
</td>
</div>
</tr>
</table>
In the DateTimePicker.ascx.vb (code behind) file i used the following code:
Partial Class App_Controls_CommonControls_DateTimePicker
Inherits System.Web.UI.UserControl
Private newDate As Date
Private newDateAsString As String
Private newTimeAsString As String
Private newUnformattedTimeAsString As String
Private myHour As String = ""
Private myMinute As String = ""
Private isAm As Boolean = False
Private isPm As Boolean = False
Private myHourFormat As String = "12"
Public Enum HourFormatEnum
Twelve = 12
TwentyFour = 24
End Enum
<ComponentModel.DefaultValue("Twelve")> _
Public Property HourPicker_Format() As HourFormatEnum
Get
Return myHourFormat
End Get
Set(ByVal value As HourFormatEnum)
myHourFormat = value
If myHourFormat = "12" Then
ddlAmPmPicker1.Visible = True
ddlHourPicker1.Items.Clear()
ddlHourPicker1.Items.Add("hrs")
ddlHourPicker1.Items.Add("1")
ddlHourPicker1.Items.Add("2")
ddlHourPicker1.Items.Add("3")
ddlHourPicker1.Items.Add("4")
ddlHourPicker1.Items.Add("5")
ddlHourPicker1.Items.Add("6")
ddlHourPicker1.Items.Add("7")
ddlHourPicker1.Items.Add("8")
ddlHourPicker1.Items.Add("9")
ddlHourPicker1.Items.Add("10")
ddlHourPicker1.Items.Add("11")
ddlHourPicker1.Items.Add("12")
ElseIf myHourFormat = "24" Then
ddlAmPmPicker1.Visible = False
ddlHourPicker1.Items.Clear()
ddlHourPicker1.Items.Add("hrs")
ddlHourPicker1.Items.Add("0")
ddlHourPicker1.Items.Add("1")
ddlHourPicker1.Items.Add("2")
ddlHourPicker1.Items.Add("3")
ddlHourPicker1.Items.Add("4")
ddlHourPicker1.Items.Add("5")
ddlHourPicker1.Items.Add("6")
ddlHourPicker1.Items.Add("7")
ddlHourPicker1.Items.Add("8")
ddlHourPicker1.Items.Add("9")
ddlHourPicker1.Items.Add("10")
ddlHourPicker1.Items.Add("11")
ddlHourPicker1.Items.Add("12")
ddlHourPicker1.Items.Add("13")
ddlHourPicker1.Items.Add("14")
ddlHourPicker1.Items.Add("15")
ddlHourPicker1.Items.Add("16")
ddlHourPicker1.Items.Add("17")
ddlHourPicker1.Items.Add("18")
ddlHourPicker1.Items.Add("19")
ddlHourPicker1.Items.Add("20")
ddlHourPicker1.Items.Add("21")
ddlHourPicker1.Items.Add("22")
ddlHourPicker1.Items.Add("23")
End If
End Set
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
ddlMinutePicker1.Items.Clear()
ddlMinutePicker1.Items.Add("mins")
ddlMinutePicker1.Items.Add("00")
ddlMinutePicker1.Items.Add("01")
ddlMinutePicker1.Items.Add("02")
ddlMinutePicker1.Items.Add("03")
ddlMinutePicker1.Items.Add("04")
ddlMinutePicker1.Items.Add("05")
ddlMinutePicker1.Items.Add("06")
ddlMinutePicker1.Items.Add("07")
ddlMinutePicker1.Items.Add("08")
ddlMinutePicker1.Items.Add("09")
ddlMinutePicker1.Items.Add("10")
ddlMinutePicker1.Items.Add("11")
ddlMinutePicker1.Items.Add("12")
ddlMinutePicker1.Items.Add("13")
ddlMinutePicker1.Items.Add("14")
ddlMinutePicker1.Items.Add("15")
ddlMinutePicker1.Items.Add("16")
ddlMinutePicker1.Items.Add("17")
ddlMinutePicker1.Items.Add("18")
ddlMinutePicker1.Items.Add("19")
ddlMinutePicker1.Items.Add("20")
ddlMinutePicker1.Items.Add("21")
ddlMinutePicker1.Items.Add("22")
ddlMinutePicker1.Items.Add("23")
ddlMinutePicker1.Items.Add("24")
ddlMinutePicker1.Items.Add("25")
ddlMinutePicker1.Items.Add("26")
ddlMinutePicker1.Items.Add("27")
ddlMinutePicker1.Items.Add("28")
ddlMinutePicker1.Items.Add("29")
ddlMinutePicker1.Items.Add("30")
ddlMinutePicker1.Items.Add("31")
ddlMinutePicker1.Items.Add("32")
ddlMinutePicker1.Items.Add("33")
ddlMinutePicker1.Items.Add("34")
ddlMinutePicker1.Items.Add("35")
ddlMinutePicker1.Items.Add("36")
ddlMinutePicker1.Items.Add("37")
ddlMinutePicker1.Items.Add("38")
ddlMinutePicker1.Items.Add("39")
ddlMinutePicker1.Items.Add("40")
ddlMinutePicker1.Items.Add("41")
ddlMinutePicker1.Items.Add("42")
ddlMinutePicker1.Items.Add("43")
ddlMinutePicker1.Items.Add("44")
ddlMinutePicker1.Items.Add("45")
ddlMinutePicker1.Items.Add("46")
ddlMinutePicker1.Items.Add("47")
ddlMinutePicker1.Items.Add("48")
ddlMinutePicker1.Items.Add("49")
ddlMinutePicker1.Items.Add("50")
ddlMinutePicker1.Items.Add("51")
ddlMinutePicker1.Items.Add("52")
ddlMinutePicker1.Items.Add("53")
ddlMinutePicker1.Items.Add("54")
ddlMinutePicker1.Items.Add("55")
ddlMinutePicker1.Items.Add("56")
ddlMinutePicker1.Items.Add("57")
ddlMinutePicker1.Items.Add("58")
ddlMinutePicker1.Items.Add("59")
ddlAmPmPicker1.Items.Clear()
ddlAmPmPicker1.Items.Add("AM")
ddlAmPmPicker1.Items.Add("PM")
If ddlHourPicker1.Items.Count = 0 Then
If myHourFormat = "12" Then
ddlAmPmPicker1.Visible = True
ddlHourPicker1.Items.Clear()
ddlHourPicker1.Items.Add("hrs")
ddlHourPicker1.Items.Add("1")
ddlHourPicker1.Items.Add("2")
ddlHourPicker1.Items.Add("3")
ddlHourPicker1.Items.Add("4")
ddlHourPicker1.Items.Add("5")
ddlHourPicker1.Items.Add("6")
ddlHourPicker1.Items.Add("7")
ddlHourPicker1.Items.Add("8")
ddlHourPicker1.Items.Add("9")
ddlHourPicker1.Items.Add("10")
ddlHourPicker1.Items.Add("11")
ddlHourPicker1.Items.Add("12")
ElseIf myHourFormat = "24" Then
ddlAmPmPicker1.Visible = False
ddlHourPicker1.Items.Clear()
ddlHourPicker1.Items.Add("hrs")
ddlHourPicker1.Items.Add("0")
ddlHourPicker1.Items.Add("1")
ddlHourPicker1.Items.Add("2")
ddlHourPicker1.Items.Add("3")
ddlHourPicker1.Items.Add("4")
ddlHourPicker1.Items.Add("5")
ddlHourPicker1.Items.Add("6")
ddlHourPicker1.Items.Add("7")
ddlHourPicker1.Items.Add("8")
ddlHourPicker1.Items.Add("9")
ddlHourPicker1.Items.Add("10")
ddlHourPicker1.Items.Add("11")
ddlHourPicker1.Items.Add("12")
ddlHourPicker1.Items.Add("13")
ddlHourPicker1.Items.Add("14")
ddlHourPicker1.Items.Add("15")
ddlHourPicker1.Items.Add("16")
ddlHourPicker1.Items.Add("17")
ddlHourPicker1.Items.Add("18")
ddlHourPicker1.Items.Add("19")
ddlHourPicker1.Items.Add("20")
ddlHourPicker1.Items.Add("21")
ddlHourPicker1.Items.Add("22")
ddlHourPicker1.Items.Add("23")
End If
End If
If Not String.IsNullOrEmpty(myHour) Then
If ddlAmPmPicker1.Visible = True Then
If myHour = "0" Then
myHour = "12"
isAm = True
ElseIf CInt(myHour) > 12 Then
myHour = CStr(CInt(myHour) - 12)
isPm = True
ElseIf CInt(myHour) = 12 Then
myHour = "12"
isPm = True
Else
isAm = True
End If
End If
If ddlHourPicker1.Visible = True And ddlAmPmPicker1.Visible = True Then
ddlHourPicker1.SelectedIndex = ddlHourPicker1.Items.IndexOf(ddlHourPicker1.Items.FindByValue(myHour))
ddlMinutePicker1.SelectedIndex = ddlMinutePicker1.Items.IndexOf(ddlMinutePicker1.Items.FindByValue(myMinute))
If isAm Then
ddlAmPmPicker1.SelectedIndex = ddlAmPmPicker1.Items.IndexOf(ddlAmPmPicker1.Items.FindByValue("AM"))
ElseIf isPm Then
ddlAmPmPicker1.SelectedIndex = ddlAmPmPicker1.Items.IndexOf(ddlAmPmPicker1.Items.FindByValue("PM"))
End If
ElseIf ddlHourPicker1.Visible = True And ddlAmPmPicker1.Visible = False Then
ddlHourPicker1.SelectedIndex = ddlHourPicker1.Items.IndexOf(ddlHourPicker1.Items.FindByValue(myHour))
ddlMinutePicker1.SelectedIndex = ddlMinutePicker1.Items.IndexOf(ddlMinutePicker1.Items.FindByValue(myMinute))
End If
End If
End If
End Sub
Public Property DefaultDate() As String
Get
If txtDatePicker1.Visible = True Then
Return txtDatePicker1.Text
Else
Return ""
End If
End Get
Set(ByVal value As String)
If txtDatePicker1.Visible = True Then
If Not String.IsNullOrEmpty(value) Then
If IsDate(value) Then
txtDatePicker1.Text = value.ToString
ElseIf value.ToUpper.Substring(0, 3) = "NOW" Then
txtDatePicker1.Text = Now.ToShortDateString
End If
End If
End If
End Set
End Property
Public Property DefaultTime() As String
Get
If ddlHourPicker1.Visible = True And ddlAmPmPicker1.Visible = True Then
Return ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue & " " & _
ddlAmPmPicker1.SelectedValue
ElseIf ddlHourPicker1.Visible = True And ddlAmPmPicker1.Visible = False Then
Return ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue
Else
Return ""
End If
End Get
Set(ByVal value As String)
If String.IsNullOrEmpty(value) Then
Exit Property
End If
If value.ToUpper = "NOW" Then
myHour = Now.Hour.ToString
myMinute = Now.Minute.ToString
End If
If value.Contains(":") And IsDate(value) Then
myHour = Date.Parse(value).Hour.ToString
myMinute = Date.Parse(value).Minute.ToString
End If
If IsNumeric(value) Then
If value.Length = 4 Then
myHour = value.Substring(0, 2)
If myHour = "00" Then
myHour = "0"
End If
myMinute = value.Substring(2, 2)
ElseIf value.Length = 3 Then
myHour = value.Substring(0, 1)
myMinute = value.Substring(1, 2)
End If
End If
If myMinute.Length = 1 Then
myMinute = "0" & myMinute
End If
End Set
End Property
<ComponentModel.DefaultValue("False")> _
Public Property DateTimePicker_ReadOnly() As Boolean
Get
Return txtDatePicker1.ReadOnly
End Get
Set(ByVal value As Boolean)
If value = False Then
If txtDatePicker1.Visible = True Then
txtDatePicker1.ReadOnly = value
txtDatePicker1_CalendarExtender.Enabled = True
End If
If ddlHourPicker1.Visible = True Then
ddlHourPicker1.Enabled = True
ddlMinutePicker1.Enabled = True
End If
If ddlAmPmPicker1.Visible = True Then
ddlAmPmPicker1.Enabled = True
End If
ElseIf value = True Then
If txtDatePicker1.Visible = True Then
txtDatePicker1.ReadOnly = value
txtDatePicker1_CalendarExtender.Enabled = False
End If
If ddlHourPicker1.Visible = True Then
ddlHourPicker1.Enabled = False
ddlMinutePicker1.Enabled = False
End If
If ddlAmPmPicker1.Visible = True Then
ddlAmPmPicker1.Enabled = False
End If
End If
End Set
End Property
<ComponentModel.DefaultValue("True")> _
Public Property ShowDate() As Boolean
Get
Return txtDatePicker1.Visible
End Get
Set(ByVal value As Boolean)
txtDatePicker1.Visible = value
lblDatePicker1.Visible = value
divDatePicker1.Visible = value
divDatePicker2.Visible = value
If ddlHourPicker1.Visible = True Then
divDateTimeSpacingGap1.Visible = value
divDateTimeSpacingGap2.Visible = value
Else
divDateTimeSpacingGap1.Visible = False
divDateTimeSpacingGap2.Visible = False
End If
End Set
End Property
<ComponentModel.DefaultValue("True")> _
Public Property ShowTime() As Boolean
Get
Return ddlHourPicker1.Visible
End Get
Set(ByVal value As Boolean)
ddlHourPicker1.Visible = value
ddlMinutePicker1.Visible = value
divTimePicker1.Visible = value
divTimePicker2.Visible = value
If myHourFormat = "12" Then
ddlAmPmPicker1.Visible = value
ElseIf myHourFormat = "24" Then
ddlAmPmPicker1.Visible = False
End If
lblTimePicker1.Visible = value
lblColon.Visible = value
If txtDatePicker1.Visible = True Then
divDateTimeSpacingGap1.Visible = value
divDateTimeSpacingGap2.Visible = value
Else
divDateTimeSpacingGap1.Visible = False
divDateTimeSpacingGap2.Visible = False
End If
End Set
End Property
<ComponentModel.DefaultValue("True")> _
Public Property ShowHeaderLabels() As Boolean
Get
If lblDatePicker1.Visible = False And lblTimePicker1.Visible = False Then
Return False
Else
Return True
End If
End Get
Set(ByVal value As Boolean)
lblDatePicker1.Visible = value
lblTimePicker1.Visible = value
divHeaderLabels.Visible = value
End Set
End Property
Public ReadOnly Property SelectedDateAsDate() As Date
Get
Dim thatDate As String = ""
Dim thatTime As String = ""
If txtDatePicker1.Visible = True Then
If String.IsNullOrEmpty(txtDatePicker1.Text) Then
Return #12:00:00 AM#
End If
If IsDate(txtDatePicker1.Text) Then
thatDate = txtDatePicker1.Text
ElseIf Not IsDate(txtDatePicker1.Text) Then
Return #12:00:00 AM#
End If
End If
If ddlHourPicker1.Visible = True Then
If ddlHourPicker1.SelectedIndex < 1 Or ddlMinutePicker1.SelectedIndex < 1 Then
Return #12:00:00 AM#
End If
If ddlAmPmPicker1.Visible = True Then
thatTime = ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue & " " & _
ddlAmPmPicker1.SelectedValue
ElseIf ddlAmPmPicker1.Visible = False Then
thatTime = ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue
End If
End If
Dim tempDate As New StringBuilder
If txtDatePicker1.Visible = True And ddlHourPicker1.Visible = True Then
tempDate.Append(thatDate)
tempDate.Append(" " & thatTime)
ElseIf txtDatePicker1.Visible = True And ddlHourPicker1.Visible = False Then
tempDate.Append(thatDate)
ElseIf txtDatePicker1.Visible = False And ddlHourPicker1.Visible = True Then
tempDate.Append(thatTime)
End If
newDate = Date.Parse(tempDate.ToString())
Return newDate
End Get
End Property
Public ReadOnly Property SelectedDateAsString() As String
Get
Dim thatDate As String = ""
Dim thatTime As String = ""
If txtDatePicker1.Visible = True Then
If String.IsNullOrEmpty(txtDatePicker1.Text) Then
Return ""
End If
If IsDate(txtDatePicker1.Text) Then
thatDate = txtDatePicker1.Text
ElseIf Not IsDate(txtDatePicker1.Text) Then
Return ""
End If
End If
If ddlHourPicker1.Visible = True Then
If ddlHourPicker1.SelectedIndex < 1 Or ddlMinutePicker1.SelectedIndex < 1 Then
Return ""
End If
If ddlAmPmPicker1.Visible = True Then
thatTime = Date.Parse(ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue & " " & _
ddlAmPmPicker1.SelectedValue).ToShortTimeString
ElseIf ddlAmPmPicker1.Visible = False Then
thatTime = Date.Parse(ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue).ToShortTimeString
End If
End If
Dim tempDate As New StringBuilder
If txtDatePicker1.Visible = True And ddlHourPicker1.Visible = True Then
tempDate.Append(thatDate)
tempDate.Append(" " & thatTime)
ElseIf txtDatePicker1.Visible = True And ddlHourPicker1.Visible = False Then
tempDate.Append(thatDate)
ElseIf txtDatePicker1.Visible = False And ddlHourPicker1.Visible = True Then
tempDate.Append(thatTime)
End If
newDateAsString = tempDate.ToString()
Return newDateAsString
End Get
End Property
Public ReadOnly Property SelectedTimeAsString() As String
Get
Dim thatTime As String = ""
If ddlHourPicker1.Visible = True Then
If ddlHourPicker1.SelectedIndex < 1 Or ddlMinutePicker1.SelectedIndex < 1 Then
Return ""
End If
If ddlAmPmPicker1.Visible = True Then
thatTime = Date.Parse(ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue & " " & _
ddlAmPmPicker1.SelectedValue).ToShortTimeString
ElseIf ddlAmPmPicker1.Visible = False Then
thatTime = Date.Parse(ddlHourPicker1.SelectedValue & ":" & _
ddlMinutePicker1.SelectedValue).ToShortTimeString
End If
End If
newTimeAsString = thatTime
Return newTimeAsString
End Get
End Property
Public ReadOnly Property SelectedTimeAsUnformattedString() As String
Get
Dim thatTime As String = ""
If ddlHourPicker1.Visible = True Then
If ddlHourPicker1.SelectedIndex < 1 Or ddlMinutePicker1.SelectedIndex < 1 Then
Return ""
End If
If ddlAmPmPicker1.Visible = True Then
thatTime = ddlHourPicker1.SelectedValue & _
ddlMinutePicker1.SelectedValue & " " & _
ddlAmPmPicker1.SelectedValue
ElseIf ddlAmPmPicker1.Visible = False Then
thatTime = ddlHourPicker1.SelectedValue & _
ddlMinutePicker1.SelectedValue
End If
End If
newUnformattedTimeAsString = thatTime
Return newUnformattedTimeAsString
End Get
End Property
Public Property DatePicker_Width() As Integer
Get
Return CInt(txtDatePicker1.Width.ToString)
End Get
Set(ByVal value As Integer)
If txtDatePicker1.Visible = True Then
If IsNumeric(value) Then
txtDatePicker1.Width = value
End If
End If
End Set
End Property
Public Property DatePicker_Height() As Integer
Get
Return CInt(txtDatePicker1.Height.ToString)
End Get
Set(ByVal value As Integer)
If txtDatePicker1.Visible = True Then
If IsNumeric(value) Then
txtDatePicker1.Height = value
End If
End If
End Set
End Property
Public Property DatePicker_BackColor() As Drawing.Color
Get
Return txtDatePicker1.BackColor
End Get
Set(ByVal value As Drawing.Color)
If txtDatePicker1.Visible = True Then
txtDatePicker1.BackColor = value
End If
End Set
End Property
Public Property DatePicker_ForeColor() As Drawing.Color
Get
Return txtDatePicker1.ForeColor
End Get
Set(ByVal value As Drawing.Color)
If txtDatePicker1.Visible = True Then
txtDatePicker1.ForeColor = value
End If
End Set
End Property
<ComponentModel.DefaultValue(False)> _
Public Property DatePicker_AutoPostBack() As Boolean
Get
Return txtDatePicker1.AutoPostBack
End Get
Set(ByVal value As Boolean)
If txtDatePicker1.Visible = True Then
txtDatePicker1.AutoPostBack = value
End If
End Set
End Property
Public Property HourPicker_Width() As Integer
Get
Return CInt(ddlHourPicker1.Width.ToString)
End Get
Set(ByVal value As Integer)
If ddlHourPicker1.Visible = True Then
If IsNumeric(value) Then
ddlHourPicker1.Width = value
End If
End If
End Set
End Property
Public Property HourPicker_Height() As Integer
Get
Return CInt(ddlHourPicker1.Height.ToString)
End Get
Set(ByVal value As Integer)
If ddlHourPicker1.Visible = True Then
If IsNumeric(value) Then
ddlHourPicker1.Height = value
End If
End If
End Set
End Property
Public Property HourPicker_BackColor() As Drawing.Color
Get
Return ddlHourPicker1.BackColor
End Get
Set(ByVal value As Drawing.Color)
If ddlHourPicker1.Visible = True Then
ddlHourPicker1.BackColor = value
End If
End Set
End Property
Public Property HourPicker_ForeColor() As Drawing.Color
Get
Return ddlHourPicker1.ForeColor
End Get
Set(ByVal value As Drawing.Color)
If ddlHourPicker1.Visible = True Then
ddlHourPicker1.ForeColor = value
End If
End Set
End Property
<ComponentModel.DefaultValue(False)> _
Public Property HourPicker_AutoPostBack() As Boolean
Get
Return ddlHourPicker1.AutoPostBack
End Get
Set(ByVal value As Boolean)
If ddlHourPicker1.Visible = True Then
ddlHourPicker1.AutoPostBack = value
End If
End Set
End Property
Public Property MinutePicker_Width() As Integer
Get
Return CInt(ddlMinutePicker1.Width.ToString)
End Get
Set(ByVal value As Integer)
If ddlMinutePicker1.Visible = True Then
If IsNumeric(value) Then
ddlMinutePicker1.Width = value
End If
End If
End Set
End Property
Public Property MinutePicker_Height() As Integer
Get
Return CInt(ddlMinutePicker1.Height.ToString)
End Get
Set(ByVal value As Integer)
If ddlMinutePicker1.Visible = True Then
If IsNumeric(value) Then
ddlMinutePicker1.Height = value
End If
End If
End Set
End Property
Public Property MinutePicker_BackColor() As Drawing.Color
Get
Return ddlMinutePicker1.BackColor
End Get
Set(ByVal value As Drawing.Color)
If ddlMinutePicker1.Visible = True Then
ddlMinutePicker1.BackColor = value
End If
End Set
End Property
Public Property MinutePicker_ForeColor() As Drawing.Color
Get
Return ddlMinutePicker1.ForeColor
End Get
Set(ByVal value As Drawing.Color)
If ddlMinutePicker1.Visible = True Then
ddlMinutePicker1.ForeColor = value
End If
End Set
End Property
<ComponentModel.DefaultValue(False)> _
Public Property MinutePicker_AutoPostBack() As Boolean
Get
Return ddlMinutePicker1.AutoPostBack
End Get
Set(ByVal value As Boolean)
If ddlMinutePicker1.Visible = True Then
ddlMinutePicker1.AutoPostBack = value
End If
End Set
End Property
Public Property AmPmPicker_Width() As Integer
Get
Return CInt(ddlAmPmPicker1.Width.ToString)
End Get
Set(ByVal value As Integer)
If ddlAmPmPicker1.Visible = True Then
If IsNumeric(value) Then
ddlAmPmPicker1.Width = value
End If
End If
End Set
End Property
Public Property AmPmPicker_Height() As Integer
Get
Return CInt(ddlAmPmPicker1.Height.ToString)
End Get
Set(ByVal value As Integer)
If ddlAmPmPicker1.Visible = True Then
If IsNumeric(value) Then
ddlAmPmPicker1.Height = value
End If
End If
End Set
End Property
Public Property AmPmPicker_BackColor() As Drawing.Color
Get
Return ddlAmPmPicker1.BackColor
End Get
Set(ByVal value As Drawing.Color)
If ddlAmPmPicker1.Visible = True Then
ddlAmPmPicker1.BackColor = value
End If
End Set
End Property
Public Property AmPmPicker_ForeColor() As Drawing.Color
Get
Return ddlAmPmPicker1.ForeColor
End Get
Set(ByVal value As Drawing.Color)
If ddlAmPmPicker1.Visible = True Then
ddlAmPmPicker1.ForeColor = value
End If
End Set
End Property
<ComponentModel.DefaultValue(False)> _
Public Property AmPmPicker_AutoPostBack() As Boolean
Get
Return ddlAmPmPicker1.AutoPostBack
End Get
Set(ByVal value As Boolean)
If ddlAmPmPicker1.Visible = True Then
ddlAmPmPicker1.AutoPostBack = value
End If
End Set
End Property
<ComponentModel.DefaultValue("Default")> _
Public Property DatePicker_FirstDayOfWeek() As DayOfWeek
Get
Return txtDatePicker1_CalendarExtender.FirstDayOfWeek
End Get
Set(ByVal value As DayOfWeek)
txtDatePicker1_CalendarExtender.FirstDayOfWeek = value
End Set
End Property
<ComponentModel.DefaultValue("d")> _
Public Property DatePicker_Format() As DateFormat
Get
Return txtDatePicker1_CalendarExtender.Format
End Get
Set(ByVal value As DateFormat)
txtDatePicker1_CalendarExtender.Format = value
End Set
End Property
End Class