比较简单,不写注释了
CS代码如下
1
using
System;
2
using
System.Collections.Generic;
3
using
System.ComponentModel;
4
using
System.Text;
5
using
System.Web;
6
using
System.Web.UI;
7
using
System.Web.UI.WebControls;
8
using
System.Security.Permissions;
9![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzMvOC83LzUvOTAvNzMxNjU1OTU0YzdiZTlkODgzNWVjZTU1MWI1Mzg1ZjguanBl.jpe?w=700)
10
[assembly: WebResource(
"
WYN.WebControls.script_PopupCalender.js
"
,
"
application/x-javascript
"
, PerformSubstitution
=
true
)]
11
[assembly:TagPrefix(
"
WYN
"
,
"
TextBoxCalendar
"
)]
12
namespace
WYN.WebControls
13![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzAvNC83LzIvMzEvMjRhOTI0YTU3YmE2YjNmMmI1MWZjOWVkYjdlYTQxODYuanBl.jpe?w=700)
{
14
[ToolboxData("<{0}:TextBoxCalendar runat=server></{0}:TextBoxCalendar>")]
15
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
16
public class TextBoxCalendar :TextBox
17![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
18![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
19
[Bindable(true)]
20
[Category("Appearance")]
21
[DefaultValue("")]
22
[Localizable(true)]
23
[Description("控件选定的短日期字符串格式")]
24
public string ShortDate
25![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
26
get
27![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
28
if (String.IsNullOrEmpty(Text))
29
base.Text = System.DateTime.Now.Date.ToShortDateString();
30![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
31
return base.Text;
32
}
33![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
34
set
35![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
36
base.Text = value;
37
}
38
}
39![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
40
[Bindable(true)]
41
[Category("Appearance")]
42
[DefaultValue("")]
43
[Localizable(true)]
44
[Description("控件选定的日期")]
45
public DateTime SelectedDate
46![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
47
get
48![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
49
if (String.IsNullOrEmpty(Text))
50
base.Text = System.DateTime.Now.Date.ToShortDateString();
51![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
52
return Convert.ToDateTime(base.Text);
53
}
54
set
55![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
56
base.Text = value.ToShortDateString();
57
}
58
}
59![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
60
[Browsable(false)]
61
public override string Text
62![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
63
get
64![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
65
return base.Text;
66
}
67
set
68![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
69
;
70
}
71
}
72![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
73
[Browsable(false)]
74
public override TextBoxMode TextMode
75![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
76
get
77![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
78
return base.TextMode;
79
}
80
set
81![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
82
;
83
}
84
}
85![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
86
[Browsable(false)]
87
public override bool ReadOnly
88![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
89
get
90![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
91
return true;
92
}
93
}
94![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
95
protected override void OnLoad(EventArgs e)
96![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
97
// Define the resource name and type.
98
String rsname = "WYN.WebControls.script_PopupCalender.js";
99
Type rstype = this.GetType();
100![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
101
// Get a ClientScriptManager reference from the Page class.
102
ClientScriptManager cs = Page.ClientScript;
103
104
// Register the client resource with the page.
105
cs.RegisterClientScriptResource(rstype, rsname);
106![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
107![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
108
base.OnLoad(e);
109
}
110![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzgvNi8zLzQvODEvMTQwOGM1MjYwYjJmMDVlNDUwZGVlOTI5ZGI5YmU1ZjcuanBl.jpe?w=700)
111
protected override void Render(HtmlTextWriter writer)
112![一个日期选择控件,(半原创) 一个日期选择控件,(半原创)](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzQvNC82LzIvNzYvNzE1ZjJkMDU1MDNiOTlkNDFmM2I2YmEyY2RjY2M4NGQuanBl.jpe?w=700)
{
113
writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "PopupCalender();");
114
base.Render(writer);
115
}
116
}
117
}
118
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
JS文件如下
有一个地方要特别说明一下:
由于不想让使用者见到JavaScript文件,不想让他们手工设JS路径,所以代码用到了2.0里的一个新东西
在Namespace上打上如下Attribt
[assembly: WebResource("WYN.WebControls.script_PopupCalender.js", "application/x-javascript", PerformSubstitution = true)]
注册JS的方法如下:
然后在JS文件右击,选属性,生成操作(Build Action) 设为嵌入的资源
收工!可以用了