Files
OurUmbraco/uEvents/controls/DateTimePicker.cs
T
Sebastiaan Janssen 810cbd267f Initial commit
2012-12-17 09:41:11 +01:00

120 lines
3.6 KiB
C#

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using AjaxControlToolkit;
using System.Globalization;
using System.Threading;
namespace uEvents.controls
{
[ValidationProperty("SelectedDate")]
public class DatePicker : System.Web.UI.WebControls.WebControl, System.Web.UI.INamingContainer
{
private System.Web.UI.WebControls.TextBox tb;
private CalendarExtender ca;
private System.Web.UI.WebControls.TextBox hour;
private System.Web.UI.WebControls.TextBox minute;
private System.Web.UI.WebControls.Literal colon;
private System.Web.UI.WebControls.Literal at;
public DatePicker()
{
EnsureChildControls();
}
protected override void CreateChildControls()
{
colon = new Literal();
colon.ID = "lt_" + this.ID;
colon.Text = ":";
at = new Literal();
at.ID = "lt_at_" + this.ID;
at.Text = "@";
minute = new System.Web.UI.WebControls.TextBox();
minute.ID = "tb_minute" + this.ID;
minute.CssClass = "minute";
hour = new System.Web.UI.WebControls.TextBox();
hour.ID = "tb_hour" + this.ID;
hour.CssClass = "hour";
tb = new System.Web.UI.WebControls.TextBox();
tb.ID = "tb" + this.ID;
tb.CssClass = "calendar";
//this.Controls.Add(tb);
ca = new CalendarExtender();
DateTimeFormatInfo di = Thread.CurrentThread.CurrentCulture.DateTimeFormat;
ca.Format = di.ShortDatePattern;
ca.TargetControlID = tb.ID;
ca.ID = "ce" + this.ID;
//this.Controls.Add(ca);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.Controls.Add(tb);
this.Controls.Add(hour);
this.Controls.Add(colon);
this.Controls.Add(minute);
this.Controls.Add(ca);
}
public DateTime? SelectedDate
{
get
{
EnsureChildControls();
DateTime selected;
if (DateTime.TryParse(tb.Text, out selected))
{
selected = selected.Subtract(new TimeSpan(int.Parse(hour.Text), int.Parse(minute.Text), 0));
// then add back your assigned hours and minutes
selected = selected.AddHours(int.Parse(hour.Text)).AddMinutes(int.Parse(minute.Text));
return selected;
}
return null;
}
set
{
EnsureChildControls();
if (value != null)
{
DateTimeFormatInfo di = Thread.CurrentThread.CurrentCulture.DateTimeFormat;
tb.Text = ((DateTime)value).ToString(di.ShortDatePattern);
hour.Text = ((DateTime)value).Hour.ToString();
minute.Text = ((DateTime)value).Minute.ToString();
ca.SelectedDate = value;
}
else
{
hour.Text = "12";
minute.Text = "00";
}
}
}
}
}