Hi Guys,
I recently could not find a free time-picker control and had to write one from scratch. I thought I'd post it here to maybe help someone later. The control returns a string, which was good for my needs, but the main thing was deciding on the UI implementation. Feel free to use / alter / comment!
Thanks,
Buck
Time Picker Control

ASP CODE
<%
@ Control Language="C#" AutoEventWireup="true" CodeFile="Time-Picker.ascx.cs" Inherits="UserControls_Time_Picker" %><asp:TextBox runat="server" ID="txtHour"></asp:TextBox>
<
ajax:NumericUpDownExtender ID="txtHour_NumericUpDownExtender" runat="server" Enabled="True" Maximum="12" Minimum="1" TargetControlID="txtHour" Width="70"></ajax:NumericUpDownExtender><asp:TextBox runat="server" ID="txtMinute"></asp:TextBox>
<
ajax:NumericUpDownExtender ID="txtMinute_NumericUpDownExtender" runat="server" Enabled="True" RefValues=":00;:15;:30;:45;" TargetControlID="txtMinute" Width="70"></ajax:NumericUpDownExtender><asp:TextBox runat="server" ID="txtDayPart"></asp:TextBox>
<
ajax:NumericUpDownExtender ID="txtDayPart_NumericUpDownExtender" runat="server" Enabled="True" RefValues="AM;PM" TargetControlID="txtDayPart" Width="70"></ajax:NumericUpDownExtender>
CODE BEHIND
public
partial class UserControls_Time_Picker : System.Web.UI.UserControl
{
private string _Time;public string Time
{
get { return txtHour.Text + txtMinute.Text + " " + txtDayPart.Text; }set { ParseTime(value); }
}
protected void Page_Load(object sender, EventArgs e)
{
}
private void ParseTime(string TimeString)
{
// Validation of inputif (TimeString.IndexOf(":") == -1)
{
return;
}
if ((TimeString.IndexOf("PM") == -1) && (TimeString.IndexOf("AM") == -1))
{
return;
}
// Good to go with formatint ColonPos = TimeString.IndexOf(":");
int AMPos = TimeString.IndexOf("AM");int PMPos = TimeString.IndexOf("PM");
string sHour = TimeString.Substring(0, ColonPos);string sMinutes = TimeString.Substring(ColonPos, 3);string sDayPart = (TimeString.IndexOf("AM") != -1) ? TimeString.Substring(AMPos, 2) : TimeString.Substring(PMPos, 2);
txtHour.Text = sHour;
txtMinute.Text = sMinutes;
txtDayPart.Text = sDayPart;
}
}