时间显示控件(yyyy-MM-DD HH:MM)

在各种项目里都少不了时间的出现,有时候我们要选择时间,但有时候只能选择年-月-日 没有时分,有时候为了处理这种时间显示还要花点时间来处理,在这种情况下就写了一个简单的时间控件:

下面是代码片断:
  1  using  System;
  2  using  System.Web.UI;
  3  using  System.Web.UI.WebControls;
  4  using  System.ComponentModel;
  5  using  System.ComponentModel.Design;
  6 
  7  namespace  HBControls
  8  {
  9      
 10       ///   <summary>
 11       /// 作者:王永强|HeroBeast|海尔比斯特
 12       /// 时间:2006-12-24
 13       /// 功能:显示为:2008-02-12 12:01的时间格式,支持多语言
 14       ///   </summary>
 15      [DefaultProperty( " Text " ), 
 16      ToolboxData( " <{0}:HBDateTime runat=server></{0}:HBDateTime> " )]
 17       public   class  HBDateTime : System.Web.UI.WebControls.WebControl,INamingContainer
 18      {
 19           // 声明变量
 20           private   string  _strText;     // 时间
 21           private   string  _strHTCPath;  // HTC控件的路径
 22           private   string  _strAuthor  = " HeroBeast " // 作者
 23           private   string  _strTime = DateTime.Now.ToShortDateString(); // 开发时间
 24          
 25 
 26           private  TextBox         _textBox;  // 日期
 27           private  DropDownList _drpHour;  // 小时
 28           private  DropDownList _drpMin;   // 分钟
 29 
 30           private   string  _Hour;
 31           private   string  _Min;
 32 
 33           public   string  Hour
 34          {
 35               get
 36              {
 37                   return  _Hour;
 38              }
 39               set
 40              {
 41                  _Hour  =  value;
 42              }
 43          }
 44 
 45           public   string  Min
 46          {
 47               get
 48              {
 49                   return  _Min;
 50              }
 51               set
 52              {
 53                  _Min  =  value;
 54              }
 55          }
 56 
 57           // 构造
 58           public  HBDateTime()
 59          {
 60               // 默认显示为当前时间
 61               this .Text  =  DateTime.Now.ToString( " yyyy-MM-dd HH:mm " ,System.Globalization.DateTimeFormatInfo.InvariantInfo);
 62              _strAuthor  =   " HeroBeast " ;
 63              _strTime  =  DateTime.Now.ToShortDateString();
 64 
 65              
 66          }
 67           // 开发时间
 68          [
 69          Bindable( true ),
 70          Category( " DevelopTime " ),
 71          DefaultValue( "" ),
 72          Description( " 开发时间 " )
 73          ]
 74           public   string  DevelopTime
 75          {
 76               get  {  return  _strTime;  }
 77               // set { _strAuthor = value; }
 78          }
 79           // 作者
 80          [
 81          Bindable( true ),
 82          Category( " Author " ),
 83          DefaultValue( "" ),
 84          Description( " 作者 " )
 85          ]
 86           public   string  Author
 87          {
 88               get  {  return  _strAuthor;  }
 89               // set { _strAuthor = value; }
 90          }
 91           //
 92          [
 93          Bindable( true ),
 94          Category( " Appearance " ),
 95          DefaultValue( "" ),
 96          Description( " 设置HTC日期控件的路径 " )
 97          ]
 98           public   string  HTCPath
 99          {
100               get  {  return  _strHTCPath;  }
101               set  { _strHTCPath  =  value; }
102          }
103           // 定义属性
104          [
105          Bindable( true ),
106          Category( " Appearance " ),
107          DefaultValue( "" ),
108          Description( " 获得或设置控件上的时间(格式:2006-10-14 17:15) " )
109          ]
110           public   string  Text
111          {
112               get  
113              {
114                  EnsureChildControls();
115                   // 组合成时间格式
116                  _strText  =   this ._textBox.Text.Trim() + "   " + this ._drpHour.SelectedValue + " : " + this ._drpMin.SelectedValue;
117                   return  _strText;
118              }
119 
120               set  
121              {
122                  EnsureChildControls();
123                   string  strTemp  =  Convert.ToDateTime(value).ToString( " yyyy-MM-dd HH:mm " ,System.Globalization.DateTimeFormatInfo.InvariantInfo);
124                  
125                  _textBox.Text  =  strTemp.Substring( 0 , 10 ).ToString();
126                  _drpHour.SelectedIndex  =  _drpHour.Items.IndexOf(_drpHour.Items.FindByValue(strTemp.Substring( 11 , 2 ).ToString()));
127                   string  aa  =  strTemp.Substring( 11 , 2 ).ToString();
128                  _drpMin.SelectedIndex  =  _drpMin.Items.IndexOf(_drpMin.Items.FindByValue(strTemp.Substring( 14 , 2 ).ToString()));
129              }
130          }
131 
132           // 重写Control属性
133           public   override  ControlCollection Controls
134          {
135               get
136              {
137                  EnsureChildControls();
138                   return   base .Controls;
139              }
140          }
141 
142           // 重写CreateChildControls方法,将子控件添加到复合控件中
143           protected   override   void  CreateChildControls()
144          {
145              Controls.Clear(); // 清除所有子控件
146 
147              _textBox  =   new  TextBox();
148 
149               // 设置TextBox为只读
150              _textBox.ReadOnly  =   true ;
151               // 样式
152              _textBox.CssClass = " dateTimePicker " ;
153              _textBox.Width = Unit.Pixel( 80 );
154               //
155              _drpHour  =   new  DropDownList();
156 
157               for ( int  j = 0 ;j < 24 ;j ++ )
158              {
159                   if (j < 10 )
160                  {
161                      _drpHour.Items.Add( " 0 " + j.ToString());
162                  }
163                   else
164                  {
165                      _drpHour.Items.Add(j.ToString());
166                  }
167 
168                  
169              }
170 
171              _drpMin   =   new  DropDownList();
172 
173               for ( int  i = 0 ;i < 60 ;i ++ )
174              {
175                   if (i < 10 )
176                  {
177                      _drpMin.Items.Add( " 0 " + i.ToString());
178                  }
179                   else
180                  {
181                      _drpMin.Items.Add(i.ToString());
182                  }
183              }
184 
185               this .Controls.Add(_textBox);
186               this .Controls.Add(_drpHour);
187               this .Controls.Add(_drpMin);
188          }
189 
190           // 重写Render方法
191           protected   override   void  Render(HtmlTextWriter output)
192          {
193               // 写日期控件的样式
194              output.Write( " <style>BODY { }TABLE { FONT-SIZE: 12px }.dateTimePicker { BEHAVIOR: url( " + this ._strHTCPath + " ) }</style> " );
195 
196               //
197              output.AddAttribute(HtmlTextWriterAttribute.Border, " 0px " );
198              output.AddAttribute(HtmlTextWriterAttribute.Cellpadding, " 0px " );
199              output.AddAttribute(HtmlTextWriterAttribute.Cellspacing, " 0px " );
200              output.RenderBeginTag(HtmlTextWriterTag.Table);
201              output.RenderBeginTag(HtmlTextWriterTag.Tr);
202              output.RenderBeginTag(HtmlTextWriterTag.Td);
203               //
204              _textBox.RenderControl(output);
205              output.RenderEndTag();
206 
207              output.RenderBeginTag(HtmlTextWriterTag.Td);
208              _drpHour.RenderControl(output);
209              output.Write(_Hour);
210              output.RenderEndTag();
211 
212              output.RenderBeginTag(HtmlTextWriterTag.Td);
213              _drpMin.RenderControl(output);
214              output.Write(_Min);
215              output.RenderEndTag();
216 
217              output.RenderEndTag(); // tr
218 
219              output.RenderEndTag(); // table
220          }
221      }
222  }
223 

这里面的日期是信赖于一个HTC控件在这里可以下载到:
HTC日期控件

下面是源代码:
时间控件源代码

希望大家指教,我会虚心改正学习。

转载于:https://www.cnblogs.com/HeroBeast/archive/2007/02/25/656399.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值