码迷,mamicode.com
首页 > 其他好文 > 详细

原创控件代码共享--日期选择控件

时间:2014-05-12 15:21:22      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:des   style   class   java   c   ext   

原创控件代码共享--日期选择控件

思路:实现日期年月日的选择
1、可以设定年的起止年份
2、排除不正确日期选择的可能
3、使用javascript实现控制
4、使用Text属性方便获取设置日期值
=================================
代码如下:
using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.IO;
using System.Text;
using System.Web.UI;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;

namespace JSY
{
/// <summary>
/// AspNetDate 选择输入日期控件
/// </summary>
[DefaultProperty("Text"), 
ParseChildren(false),
PersistChildren(false),
Description("专用于ASP.Net Web应用程序的日期控件"),
Designer(typeof(DateDesigner)),
ToolboxData("<{0}:JSYNetDate runat=server></{0}:JSYNetDate>")]
public class JSYNetDate:Panel,INamingContainer,IPostBackDataHandler
{
#region 属性
/// <summary>
/// 获取/设置日期值。
/// </summary>
[Bindable(true),
Browsable(true),
Description("日期值"),
Category("外观"), 
DefaultValue("")] 
public string Text 
{
get
{
if (ViewState["Text"] != null)
{
return ViewState["Text"].ToString();
}
else
{
if (IsNull)
{
return "";
}
else
{
DateTime date=System.DateTime.Today;
string str="";
switch (DateFormat)
{
case "YMD":
str=date.ToString("yyyy-MM-dd",System.Globalization.DateTimeFormatInfo.InvariantInfo);
break;
case "YM":
str=date.ToString("yyyy-MM",System.Globalization.DateTimeFormatInfo.InvariantInfo);
break;
case "Y":
str=date.Year.ToString();
break;
}
return str;
}
}
}

set
{
if (value=="")
{
ViewState["Text"] = "";
}
else if (DateFormat=="YMD")
{
DateTime date;
try
{
date=Convert.ToDateTime(value);
}
catch
{
date=System.DateTime.Today;
}
string str = date.ToString("yyyy-MM-dd",System.Globalization.DateTimeFormatInfo.InvariantInfo);
if (str=="1900-01-01")
str="";
ViewState["Text"] =str;
}
else
{
ViewState["Text"] = value;
}
}
}
/// <summary>
/// 获取/设置日期值是否允许空。
/// </summary>
[Browsable(true), 
Description("日期值是否允许空"),
Category("布局"), 
DefaultValue(false)] 
public bool IsNull
{
get
{
return (ViewState["IsNull"]==null)?false:true;
}
set
{
if (value)
ViewState["IsNull"]=true;
}
}
/// <summary>
/// 获取/设置日期值格式(YMD:年-月-日 YM:年-月 Y:年)。
/// </summary>
[Browsable(true), 
Description("日期值格式(YMD:年-月-日 YM:年-月 Y:年)"),
Category("布局"), 
DefaultValue("YMD")] 
public string DateFormat
{
get
{
return (ViewState["DateFormat"]==null)?"YMD":(string)ViewState["DateFormat"];
}

set
{
ViewState["DateFormat"]=value;
}
}
/// <summary>
/// 获取/设置日期值能否编辑。
/// </summary>
[Browsable(true), 
Description("能否编辑"),
Category("行为"), 
DefaultValue(true)] 
public override bool Enabled
{
get
{
return (ViewState["Enabled"]==null)?true:false;
}

set
{
if (!value)
ViewState["Enabled"]=false;
}
}
/// <summary>
/// 获取/设置日期值中可供选择的年份长度。
/// </summary>
[Browsable(true), 
Description("日期值中可供选择的年份长度"),
Category("布局"), 
DefaultValue(100)]

原创控件代码共享--日期选择控件,布布扣,bubuko.com

原创控件代码共享--日期选择控件

标签:des   style   class   java   c   ext   

原文地址:http://blog.csdn.net/u014739778/article/details/25462169

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!