using System;
using System.Web.UI.WebControls;
using System.Web;
using System.Web.UI;
using ponentModel;
namespace PeoNormalControl
{
<summary>
/// JS类型的DateTimePicker
/// </summary>
[
ParseChildren(false)
]
[
ToolboxData("<{0}:DateTimePicker runat=server></{0}:DateTimePicker>"),DefaultEvent
("DateChanged"),ValidationProperty("DateText"),
]
public class DateTimePicker:WebControl,IPostBackDataHandler
{
public DateTimePicker()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private static object EventDateChangedObject;
//public event EventHandler DateChanged;
#region 数据成员
private Int32 _Hour;
private Int32 _Minute;
private Int32 _Second;
<summary>
/// 设置或获取日期框文本。
/// </summary>
[Category("Data"),Description("设置或获取日期框文本。"),DefaultValue("")]
public String DateText
{
get{
object objVal = ViewState["DateText"];
return objVal == null ? String.Empty : objVal.ToString();
}
set{
if (value.Length == 0)
{
this.ViewState.SetItemDirty("DateText",false);
ViewState["DateText"] = String.Empty;
return;
}
ViewState["DateText"] = DateTime.Parse(value).ToString("yyyy-MM-dd");
}
}
<summary>
/// 设置或获取小时。
/// </summary>
[Category("Data"),Description("设置或获取小时。"),DefaultValue(0)]
public Int32 Hour
{
get{return _Hour;}
set{
if (value > 23 || value < 0)
throw new ArgumentOutOfRangeException("Hour",value,"参数范围
溢出,小时的范围应在0-23之间。");
_Hour = value;
}
}
<summary>
/// 设置或获取分钟。
/// </summary>
[Category("Data"),Description("设置或获取分钟。"),DefaultValue(0)]
public Int32 Minute
{
get{return _Minute;}
set{
if (value > 59 || value < 0)
throw new ArgumentOutOfRangeException("Hour",value,"参数范围
溢出,分钟的范围应在0-59之间。");
_Minute = value;
}
}
<summary>
/// 设置或获取秒钟。
/// </summary>
[Category("Data"),Description("设置或获取秒钟。"),DefaultValue(0)]
public Int32 Second
{
get{return _Second;}
set{
if (value > 59 || value < 0)
throw new ArgumentOutOfRangeException("Hour",value,"参数范围
溢出,秒的范围应在0-59之间。");
_Second = value;
}
}
<summary>
/// 设置或获取日期和时间。
/// </summary>
[Category("Data"),Description("设置或获取日期和时间。")]
public DateTime SelectedDateTime
{
get{
return DateText == String.Empty ? DateTime.MinValue : DateTime.Parse
(DateText).AddHours(Hour).AddMinutes(Minute).AddSeconds(Second);
}
set
{
if (value == DateTime.MinValue)
{
this.DateText = String.Empty;
this.Hour = 0;
this.Minute = 0;
this.Second = 0;
}
else
{
this.DateText = value.ToString("yyyy-MM-dd");
this.Hour = value.Hour;
this.Minute = value.Minute;
this.Second = value.Second;
}
}
}
#endregion
#region 设置属性
<summary>
/// 日期改变后,是否自动回发服务器。
/// </summary>
[Category("Behavior"),Description("日期改变后,是否自动回发服务器。"),DefaultValue
(false),Bindable(false)]
public bool AutoPostBack
{
get{
object objVal = ViewState["AutoPostBack"];
return objVal == null ? false : Convert.ToBoolean(objVal);
}
set{
if (value == false)
{
this