温馨提示:代码在线浏览功能只能做为源码浏览参考,不能展示项目的全部,如果想更进一步了解该代码请下载:51aspx日期控件演示及源码
当前文件路径:CalendarDemo/Calendar/Calendar/Calendar.cs

1//璇ユ簮鐮佷笅杞借嚜www.51aspx.com(锛曪紤锝侊綋锝愶綐锛庯絻锝忥綅) 2
//51aspx浣滃搧锛岃浆杞借淇濈暀浣滆呬俊鎭? 3
namespace Calendar51aspx 4
{ 5
using System; 6
using System.Collections.Specialized; 7
using System.ComponentModel; 8
using System.Text; 9
using System.Web.UI; 10
11
[ToolboxData("<{0}:Calendar runat=server></{0}:Calendar>"), Designer(typeof(CalendarDesigner)), DefaultProperty("Text")] 12
public class Calendar : Control, IPostBackDataHandler 13
{ 14
public static string _DATETIMEPICKER_WIDTH = "156"; 15
private string text; 16
17
protected override void CreateChildControls() 18
{ 19
this.Page.RegisterClientScriptBlock("CalendarCss", "<link rel=\"stylesheet\" type=\"text/css\" href=\"" + this.CalendarResource + "Calendar.css\">"); 20
} 21
22
public virtual bool LoadPostData(string postDataKey, NameValueCollection values) 23
{ 24
string value = values[this.UniqueID]; 25
this.Value = value; 26
return false; 27
} 28
29
public virtual void RaisePostDataChangedEvent() 30
{ 31
} 32
33
protected override void Render(HtmlTextWriter output) 34
{ 35
StringBuilder sb = new StringBuilder(); 36
DatePickerMode mode = DatePickerMode.Date; 37
mode = this.CalendarMode; 38
string year = ""; 39
string month = ""; 40
string day = ""; 41
string hour = ""; 42
string minute = ""; 43
if (this.Value != "") 44
{ 45
try 46
{ 47
DateTime date = DateTime.Parse(this.Value); 48
year = date.Year.ToString(); 49
month = date.Month.ToString(); 50
day = date.Day.ToString(); 51
hour = date.Hour.ToString(); 52
minute = date.Minute.ToString(); 53
} 54
catch 55
{ 56
year = ""; 57
month = ""; 58
day = ""; 59
hour = ""; 60
minute = ""; 61
} 62
} 63
if ((mode & DatePickerMode.Date) == DatePickerMode.Date) 64
{ 65
string dpID = this.UniqueID + "DateTimePicker"; 66
this.Page.RegisterStartupScript("DatePickerScript", "<script language=\"javascript\">var _DatePickerCssPath='" + this.CalendarResource + "Calendar.css';\nvar _DatePickerImagePath='" + this.CalendarResource + "';</script>\n<script language=\"javascript\" src=\"" + this.CalendarResource + "Calendar.js\"></script><IFRAME id=iFrmCalendar name=iFrmCalendar style='display:none'></IFRAME>"); 67
sb.Append("<span class=DPFrame id=\"" + dpID + "\" style=\""); 68
if ((mode & DatePickerMode.Time) == DatePickerMode.Time) 69
{ 70
sb.Append("width:" + _DATETIMEPICKER_WIDTH + ";"); 71
} 72
sb.Append((this.Display ? "" : " display:none") + ";"); 73
sb.Append("\">\n"); 74
sb.Append("<input" + (this.ReadOnly ? " disabled" : "") + " id=\"" + this.UniqueID + "_year\" name=\"" + this.UniqueID + "_year\" class=DPYear type=text value=\"" + year + "\" size=4 maxlength=4 onfocus=\"return dp_focus('year');\" onkeypress=\"return KeyFilter('number');\" onkeydown=\"return dp_keyDown('year');\" onchange=\"dp_change();\" onblur=\"dp_blur();\">\n"); 75
sb.Append("<span class='DPSpan'>-</span>"); 76
sb.Append("<input" + (this.ReadOnly ? " disabled" : "") + " id=\"" + this.UniqueID + "_month\" name=\"" + this.UniqueID + "_month\" class=DPMonth type=text value=\"" + month + "\" size=2 maxlength=2 onfocus=\"return dp_focus('month');\" onkeypress=\"return KeyFilter('number');\" onkeydown=\"return dp_keyDown('month');\" onchange=\"dp_change();\" onblur=\"dp_blur();\">\n"); 77
sb.Append("<span class='DPSpan'>-</span>"); 78
sb.Append("<input" + (this.ReadOnly ? " disabled" : "") + " id=\"" + this.UniqueID + "_day\" name=\"" + this.UniqueID + "_day\" class=DPDay type=text value=\"" + day + "\" size=2 maxlength=2 onfocus=\"return dp_focus('day');\" onkeypress=\"return KeyFilter('number');\" onkeydown=\"return dp_keyDown('day');\" onchange=\"dp_change();\" onblur=\"dp_blur();\">\n"); 79
sb.Append(""); 80
if ((mode & DatePickerMode.Time) == DatePickerMode.Time) 81
{ 82
sb.Append("<span class='DPSpan'> </span>"); 83
sb.Append("<input" + (this.ReadOnly ? " disabled" : "") + " id=\"" + this.UniqueID + "_hour\" name=\"" + this.UniqueID + "_hour\" class=DPMonth type=text value=\"" + hour + "\" size=2 maxlength=2 onfocus=\"return dp_focus('hour');\" onkeypress=\"return KeyFilter('number');\" onkeydown=\"return dp_keyDown('hour');\" onchange=\"dp_change();\" onblur=\"dp_blur();\">\n"); 84
sb.Append("<span class='DPSpan'>:</span>"); 85
sb.Append("<input" + (this.ReadOnly ? " disabled" : "") + " id=\"" + this.UniqueID + "_minute\" name=\"" + this.UniqueID + "_minute\" class=DPMonth type=text value=\"" + minute + "\" size=2 maxlength=2 onfocus=\"return dp_focus('minute');\" onkeypress=\"return KeyFilter('number');\" onkeydown=\"return dp_keyDown('minute');\" onchange=\"dp_change();\" onblur=\"dp_blur();\">\n"); 86
} 87
sb.Append("<span class=DPSep></span>\n"); 88
sb.Append("<img" + (this.ReadOnly ? " disabled" : "") + " class=\"DPimg\" src=\"" + this.CalendarResource + "Calendar.gif\" onclick=\"GetCalendar(this,'" + this.ClientID + "'); return false;\" title=\"鐐瑰嚮閫夋嫨鏃ユ湡\">\n"); 89
sb.Append("<input type=hidden value='" + this.Value + "' id=\"" + this.UniqueID + "\" name=\"" + this.UniqueID + "\">\n"); 90
sb.Append("</span>\n"); 91
} 92
else if ((mode & DatePickerMode.Time) == DatePickerMode.Time) 93
{ 94
sb.Append("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\""); 95
sb.Append("\"" + (this.Display ? "" : "style=display:none") + ";"); 96
sb.Append("\">"); 97
sb.Append("<tr><td><select" + (this.ReadOnly ? " disabled" : "") + " id=\"" + this.UniqueID + "\" name=\"" + this.UniqueID + "\" style=\"width:50px;\">"); 98
for (int i = -1; i < 0x18; i++) 99
{ 100
if (i == -1) 101
{ 102
sb.Append("<option value=\"\"> </option>"); 103
} 104
else 105
{ 106
sb.Append("<option value=\"" + i + "\""); 107
if (hour == i.ToString()) 108
{ 109
sb.Append(" selected"); 110
} 111
sb.Append(">" + i + "</option>"); 112
} 113
} 114
sb.Append("</select> "); 115
sb.Append("<select" + (this.ReadOnly ? " disabled" : "") + " id=\"" + this.UniqueID + "_Minute\" name=\"" + this.UniqueID + "_Minute\" style=\"width:50px;\">"); 116
for (int j = -1; j < 12; j++) 117
{ 118
if (j == -1) 119
{ 120
sb.Append("<option value=\"\"> </option>"); 121
} 122
else 123
{ 124
int k = j * 5; 125
string ks = (k < 10) ? ("0" + k.ToString()) : k.ToString(); 126
sb.Append("<option value=\":" + ks + "\""); 127
if (minute == ks) 128
{ 129
sb.Append(" selected"); 130
} 131
sb.Append(">:" + ks + "</option>"); 132
} 133
} 134
sb.Append("</select>"); 135
sb.Append("</td></tr></table>"); 136
} 137
output.Write(sb.ToString()); 138
} 139
140
[Browsable(true), Category("Calendar"), Description("璁剧疆鎴栬幏鍙栨棩鍘嗘帶浠剁殑鏄剧ず鏍峰紡")] 141
public DatePickerMode CalendarMode 142
{ 143
get 144
{ 145
if (this.ViewState["CalendarMode"] == null) 146
{ 147
return DatePickerMode.Date; 148
} 149
return (DatePickerMode) this.ViewState["CalendarMode"]; 150
} 151
set 152
{ 153
this.ViewState["CalendarMode"] = value; 154
} 155
} 156
157
[Browsable(true), Category("Calendar"), Description("璁剧疆鎴栬幏鍙栨棩鍘嗘帶浠跺紩鐢ㄧ殑璧勬簮(鍥剧墖,鏍峰紡琛ㄦ枃浠?鍙奐avascript鑴氭湰鏂囦欢)鐨勮矾寰?浠ュ弽鏂滄潬缁撴潫")] 158
public string CalendarResource 159
{ 160
get 161
{ 162
if (this.ViewState["CalendarResource"] != null) 163
{ 164
return this.ViewState["CalendarResource"].ToString(); 165
} 166
return "51aspxResource/"; 167
} 168
set 169
{ 170
this.ViewState["CalendarResource"] = value; 171
} 172
} 173
174
[Browsable(true), Description("璁剧疆鎴栬幏鍙栨棩鍘嗘帶浠舵槸鍚︽樉绀?), Category("Calendar")] 175
public bool Display 176
{ 177
get 178
{ 179
if (this.ViewState["_Display"] != null) 180
{ 181
return bool.Parse(this.ViewState["_Display"].ToString()); 182
} 183
return true; 184
} 185
set 186
{ 187
this.ViewState["_Display"] = value; 188
} 189
} 190
191
[Description("璁剧疆鎴栬幏鍙栨棩鍘嗘帶浠剁殑鍙灞炴?), Category("Calendar"), Browsable(true)] 192
public bool ReadOnly 193
{ 194
get 195
{ 196
return ((this.ViewState["ReadOnly"] != null) && bool.Parse(this.ViewState["ReadOnly"].ToString())); 197
} 198
set 199
{ 200
this.ViewState["ReadOnly"] = value; 201
} 202
} 203
204
[DefaultValue(""), Bindable(true), Category("Appearance")] 205
public string Text 206
{ 207
get 208
{ 209
return this.text; 210
} 211
set 212
{ 213
this.text = value; 214
} 215
} 216
217
[Category("Calendar"), Browsable(true), Description("璁剧疆鎴栬幏鍙栨棩鍘嗘帶浠剁殑鍊?)]





}