编写C#日期时间控件的几种方法

开发 后端
做Web页面很多要用到日期输入,.NET自带的日历控件每次都需要与服务器交互很不方便。为了图省事自己开发了一个C#日期时间控件。

参照用JavaScript编写的日期选择,将其中的JavaScript部分写入控件中就可以了。C#日期时间控件代码不复杂,拿出来大家共享以下。大家帮忙找找Bug,提提改进意见。

实现效果如下:

C#日期时间控件实现效果

 Bug:控件放到frame 的页面里面使用得时候就会出错:“parent.event 为空或不是对象”
将InputCalendar.cs中output.WriteLine("parent.event.cancelBubble=true;");一句去掉即可。
这一句的意义是:设置或获取当前事件是否要在事件句柄中向上冒泡。当前应用中好像没有用,所以去掉也不要紧。

如何增加Autopostpack功能:

  1. if (autopostback==true )   
  2. {   
  3. output.WriteLine ("javascript:"+Page.GetPostBackEventReference(this)+";");   
  4. }   
  5. //添加了一个AUTOPOSTBACK功能。  

在头部加上如下代码,即可实现选择Autopostpack功能了。

  1. private bool autopostback=true;   
  2. [Bindable(true),   
  3. Category("Appearance"),   
  4. DefaultValue(true)]   
  5. public bool AutoPostBack   
  6. {   
  7. get   
  8. {   
  9. return autopostback;   
  10. }   
  11. set   
  12. {   
  13. autopostback=value;   
  14. }   

解决在用户C#日期时间控件控件中取值问题:

将原来的C#日期时间控件:

  1. output.AddAttribute(HtmlTextWriterAttribute.Id,this.ID);   
  2. output.AddAttribute(HtmlTextWriterAttribute.Name,this.ID);  

改为:

  1. output.AddAttribute(HtmlTextWriterAttribute.Id,this.UniqueID);   
  2. output.AddAttribute(HtmlTextWriterAttribute.Name,this.UniqueID);  

将原来的C#日期时间控件:

  1. output.AddAttribute(HtmlTextWriterAttribute.Id,this.ID); output.AddAttribute(HtmlTextWriterAttribute.Name,this.ID); 改为: output.AddAttribute(HtmlTextWriterAttribute.Id,this.UniqueID); output.AddAttribute(HtmlTextWriterAttribute.Name,this.UniqueID); 

 

【编辑推荐】

  1. C# 4.0 Dynamic关键字全解析
  2. 浅谈C#中构造函数和成员函数
  3. C#回调函数及API应用浅析
  4. 详解C# Object.Equals函数
  5. C#调用Windows API函数
责任编辑:彭凡 来源: yaosansi.com
相关推荐

2009-09-24 14:59:38

C#编写COM组件

2009-08-31 09:19:31

c#隐藏窗口

2013-02-22 09:54:15

C#Excel读取Excel

2009-08-05 13:34:18

C#日期相减

2009-07-30 15:57:30

C#时间

2009-09-01 18:35:53

C#判断文件存在

2009-07-30 16:40:03

C#日期格式化

2009-08-06 16:58:40

C#编写ActiveX

2009-08-28 15:05:35

C#编写Calenda

2009-08-27 14:32:15

C#编写ActiveX

2009-08-25 17:31:57

C#读取文件

2010-01-22 14:46:25

C++语言

2009-08-03 13:34:06

自定义C#控件

2009-07-30 16:27:33

C#比较时间

2009-09-14 18:11:23

C#排序方法

2024-08-23 09:00:18

开发跨域请求

2009-07-30 16:56:14

C#时间控件

2009-08-06 17:24:08

C#字符串

2009-08-25 14:59:36

ASP.NET和C#连

2009-09-08 14:54:40

C# listBox控
点赞
收藏

51CTO技术栈公众号