public class JmcDateTimePicker : WebControl, INamingContainer, IPostBackDataHandler
最主要是重载protected override void RenderContents(HtmlTextWriter writer) 这个方法,用
writer.WriteLine("<script language=\"JavaScript\">");
writer.RenderBeginTag(HtmlTextWriterTag.Input);
writer.RenderEndTag();
等方式在页面上输出html
2、验证控件的使用
服务器端验证
1
[DefaultProperty(
"
Text
"
),
2 DefaultEvent( " TextChanged " ),
3 ValidationProperty( " Text " )]
4
5 [ToolboxData( " <{0}:JmcDateTimePicker runat=server></{0}:JmcDateTimePicker> " )]
6 public class JmcDateTimePicker : WebControl, INamingContainer, IPostBackDataHandler
7 {
8}
9
10 ..
11
12 public string Text
13 {
14 get
15 {
16 //String s = (String)ViewState["Text"];
17 //return ((s == null) ? String.Empty : s);
18 return this._txtDateTime.Text;
19 }
20
21 set
22 {
23 ViewState["Text"] = value;
24
25 EnsureChildControls();
26 _txtDateTime.Text = value;
27 }
28 }
最主要的是定义ValidationProperty("Text")元数据,并且实现Text属性,根据这个属性进行验证。
2 DefaultEvent( " TextChanged " ),
3 ValidationProperty( " Text " )]
4
5 [ToolboxData( " <{0}:JmcDateTimePicker runat=server></{0}:JmcDateTimePicker> " )]
6 public class JmcDateTimePicker : WebControl, INamingContainer, IPostBackDataHandler
7 {
8}
9
10 ..
11
12 public string Text
13 {
14 get
15 {
16 //String s = (String)ViewState["Text"];
17 //return ((s == null) ? String.Empty : s);
18 return this._txtDateTime.Text;
19 }
20
21 set
22 {
23 ViewState["Text"] = value;
24
25 EnsureChildControls();
26 _txtDateTime.Text = value;
27 }
28 }