Files
Umbraco-CMS/components/umbraco.controls/DatePicker/DateTimePicker.cs
Shandem e0ceb074c0 WORK IN PROGRESS, GET THE STABLE SOURCE FROM THE DOWNLOADS TAB
Merged new date/time picker to 4.1 branch. Updated ClientDependency lib and turned on compression. Disabled Examine until it is compatible with new schema. Moved old datepicker to legacy.

[TFS Changeset #63988]
2010-02-15 14:14:02 +00:00

133 lines
4.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ClientDependency.Core;
using System.Web.UI;
using System.Web.UI.WebControls;
using umbraco.IO;
using System.Web.UI.HtmlControls;
namespace umbraco.uicontrols.DatePicker
{
[ClientDependency(ClientDependencyType.Css, "DateTimePicker/datetimepicker.css", "UmbracoClient")]
[ClientDependency(ClientDependencyType.Javascript, "ui/jquery.js", "UmbracoClient")]
[ClientDependency(ClientDependencyType.Javascript, "ui/jqueryui.js", "UmbracoClient")]
[ClientDependency(ClientDependencyType.Javascript, "DateTimePicker/timepicker.js", "UmbracoClient")]
[ClientDependency(ClientDependencyType.Javascript, "DateTimePicker/umbDateTimePicker.js", "UmbracoClient")]
public class DateTimePicker : Control
{
/// <summary>
/// Constructor, set defaults.
/// </summary>
public DateTimePicker()
{
ShowTime = true;
DateTime = DateTime.MinValue;
}
protected TextBox m_DateTextBox;
protected HtmlGenericControl m_InfoDiv;
protected HtmlAnchor m_ClearDate;
public string Text
{
get
{
return m_DateTextBox.Text;
}
}
public DateTime DateTime
{
get
{
EnsureChildControls();
DateTime d = DateTime.MinValue;
DateTime.TryParse(m_DateTextBox.Text, out d);
return d;
}
set
{
EnsureChildControls();
if (value == DateTime.MinValue)
{
m_DateTextBox.Text = "";
}
else
{
m_DateTextBox.Text = value.ToString(ShowTime ? "yyyy-MM-dd HH:mm" : "yyyy-MM-dd");
}
}
}
public bool ShowTime { get; set; }
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
EnableViewState = false;
EnsureChildControls();
}
protected override void CreateChildControls()
{
base.CreateChildControls();
var div = new HtmlGenericControl("div");
div.Attributes.Add("class", "umbDateTimePicker");
m_DateTextBox = new TextBox();
div.Controls.Add(m_DateTextBox);
m_InfoDiv = new HtmlGenericControl("div");
m_InfoDiv.InnerText = ui.Text("noDate"); ;
div.Controls.Add(m_InfoDiv);
m_ClearDate = new HtmlAnchor();
m_ClearDate.InnerText = ui.Text("removeDate");
div.Controls.Add(m_ClearDate);
this.Controls.Add(div);
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (this.DateTime != DateTime.MinValue)
{
m_InfoDiv.Visible = false;
}
else
{
m_ClearDate.Visible = false;
}
string js = @"
jQuery(document).ready(function() {
jQuery('#" + m_DateTextBox.ClientID + @"').umbDateTimePicker("
+ this.ShowTime.ToString().ToLower() + ",'"
+ ui.Text("choose") + " " + ui.Text("date") + "','"
+ ui.Text("noDate") + "','"
+ ui.Text("removeDate") + "') });";
try
{
if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack)
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "DateTime_" + this.ClientID, js, true);
else
Page.ClientScript.RegisterStartupScript(this.GetType(), "DateTime_" + this.ClientID, js, true);
}
catch
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "DateTime_" + this.ClientID, js, true);
}
}
}
}