ASP.NET常用控件之1:用于选择日期的TextBox控件

时间:2022-06-16 18:10:47
将日常使用的日期选择用户控件进行了封装,是我写的第一个服务器控件,希望大家给些意见。
ASP.NET常用控件之1:用于选择日期的TextBox控件using System;
ASP.NET常用控件之1:用于选择日期的TextBox控件
using System.ComponentModel;
ASP.NET常用控件之1:用于选择日期的TextBox控件
using System.ComponentModel.Design;
ASP.NET常用控件之1:用于选择日期的TextBox控件
using System.Web.UI;
ASP.NET常用控件之1:用于选择日期的TextBox控件
using System.Web.UI.WebControls;
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件
namespace Sdtcn.WebControls
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件
{
ASP.NET常用控件之1:用于选择日期的TextBox控件    [
ASP.NET常用控件之1:用于选择日期的TextBox控件    Designer(
typeof(Design.CompositeControlDesigner)) 
ASP.NET常用控件之1:用于选择日期的TextBox控件    ]
ASP.NET常用控件之1:用于选择日期的TextBox控件    
public abstract class CompositeControl : 
ASP.NET常用控件之1:用于选择日期的TextBox控件        WebControl, INamingContainer 
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件    
{
ASP.NET常用控件之1:用于选择日期的TextBox控件        
public override ControlCollection Controls 
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件        
{
ASP.NET常用控件之1:用于选择日期的TextBox控件            
get 
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件            
{
ASP.NET常用控件之1:用于选择日期的TextBox控件                EnsureChildControls();
ASP.NET常用控件之1:用于选择日期的TextBox控件                
return base.Controls;
ASP.NET常用控件之1:用于选择日期的TextBox控件            }

ASP.NET常用控件之1:用于选择日期的TextBox控件        }

ASP.NET常用控件之1:用于选择日期的TextBox控件    }

ASP.NET常用控件之1:用于选择日期的TextBox控件}

ASP.NET常用控件之1:用于选择日期的TextBox控件using System;
ASP.NET常用控件之1:用于选择日期的TextBox控件
using System.Web.UI;
ASP.NET常用控件之1:用于选择日期的TextBox控件
using System.Web.UI.HtmlControls;
ASP.NET常用控件之1:用于选择日期的TextBox控件
using System.Web.UI.WebControls;
ASP.NET常用控件之1:用于选择日期的TextBox控件
using System.ComponentModel;
ASP.NET常用控件之1:用于选择日期的TextBox控件
using System.ComponentModel.Design;
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件
namespace Sdtcn.WebControls
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件
{
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件    
/**//// <summary>
ASP.NET常用控件之1:用于选择日期的TextBox控件    
/// CustomCalendar 的摘要说明。
ASP.NET常用控件之1:用于选择日期的TextBox控件    
/// </summary>

ASP.NET常用控件之1:用于选择日期的TextBox控件    public class CustomCalendar : CompositeControl
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件    
{
ASP.NET常用控件之1:用于选择日期的TextBox控件        
private TextBox            _calendarTextBox;
ASP.NET常用控件之1:用于选择日期的TextBox控件        
private HtmlInputButton _selectInputButton;
ASP.NET常用控件之1:用于选择日期的TextBox控件        
private Calendar        _calendar;
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件        
private static readonly object EventSelectChanged = new object();
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件        
private string display
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件        
{
ASP.NET常用控件之1:用于选择日期的TextBox控件            
get
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件            
{
ASP.NET常用控件之1:用于选择日期的TextBox控件                
if(ViewState["Display"== null)
ASP.NET常用控件之1:用于选择日期的TextBox控件                    
return "none";
ASP.NET常用控件之1:用于选择日期的TextBox控件                
else
ASP.NET常用控件之1:用于选择日期的TextBox控件                    
return ViewState["Display"].ToString();
ASP.NET常用控件之1:用于选择日期的TextBox控件            }

ASP.NET常用控件之1:用于选择日期的TextBox控件            
set
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件            
{
ASP.NET常用控件之1:用于选择日期的TextBox控件                ViewState[
"Display"= value;
ASP.NET常用控件之1:用于选择日期的TextBox控件            }

ASP.NET常用控件之1:用于选择日期的TextBox控件        }

ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件        代理子控件的属性
代理子控件的属性
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件        事件
事件
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件        
ASP.NET常用控件之1:用于选择日期的TextBox控件        
private void _calendar_SelectionChanged(object sender, EventArgs e) 
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件        
{
ASP.NET常用控件之1:用于选择日期的TextBox控件            _calendarTextBox.Text 
= _calendar.SelectedDate.ToShortDateString();
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件            System.Web.UI.Control div 
= Page.FindControl("divCalendar");
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件            
if(div is HtmlGenericControl)
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件            
{
ASP.NET常用控件之1:用于选择日期的TextBox控件                ((HtmlGenericControl)div).Style.Add(
"display","none");
ASP.NET常用控件之1:用于选择日期的TextBox控件            }

ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件            OnSelectChanged(sender,e);
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件            display 
= "none";
ASP.NET常用控件之1:用于选择日期的TextBox控件        }

ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件        
private void _calendar_VisibleMonthChanged(Object sender, MonthChangedEventArgs e)
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件        
{
ASP.NET常用控件之1:用于选择日期的TextBox控件            display 
= "block";
ASP.NET常用控件之1:用于选择日期的TextBox控件        }

ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件        
public CustomCalendar()
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件        
{}
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件        
protected override void CreateChildControls()
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件        
{
ASP.NET常用控件之1:用于选择日期的TextBox控件            Controls.Clear();
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件            _calendarTextBox 
= new TextBox();
ASP.NET常用控件之1:用于选择日期的TextBox控件            _calendarTextBox.ID 
= "calendarTextBox";
ASP.NET常用控件之1:用于选择日期的TextBox控件            _calendarTextBox.ReadOnly 
= true;
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件            _selectInputButton 
= new HtmlInputButton("button");
ASP.NET常用控件之1:用于选择日期的TextBox控件            _selectInputButton.Attributes.Add(
"Onclick","OnClick()");
ASP.NET常用控件之1:用于选择日期的TextBox控件            
ASP.NET常用控件之1:用于选择日期的TextBox控件            _calendar 
= new Calendar();
ASP.NET常用控件之1:用于选择日期的TextBox控件            _calendar.SelectionChanged 
+= new EventHandler(_calendar_SelectionChanged);
ASP.NET常用控件之1:用于选择日期的TextBox控件            _calendar.VisibleMonthChanged 
+= new MonthChangedEventHandler(_calendar_VisibleMonthChanged);
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件            
this.Controls.Add(_calendarTextBox);
ASP.NET常用控件之1:用于选择日期的TextBox控件            
this.Controls.Add(_selectInputButton);
ASP.NET常用控件之1:用于选择日期的TextBox控件            
this.Controls.Add(_calendar);
ASP.NET常用控件之1:用于选择日期的TextBox控件        }

ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件        
protected override void OnPreRender(EventArgs e)
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件        
{
ASP.NET常用控件之1:用于选择日期的TextBox控件            
base.OnPreRender (e);
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件            
string script = "<script language=JavaScript> function OnClick(){  if( divCalendar.style.display == /"none/")    divCalendar.style.display = /"/";  else    divCalendar.style.display = /"none/";}</script>";
ASP.NET常用控件之1:用于选择日期的TextBox控件            Page.RegisterClientScriptBlock(
"script",script);
ASP.NET常用控件之1:用于选择日期的TextBox控件        }

ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件        
protected override void Render(System.Web.UI.HtmlTextWriter writer)
ASP.NET常用控件之1:用于选择日期的TextBox控件ASP.NET常用控件之1:用于选择日期的TextBox控件        
{
ASP.NET常用控件之1:用于选择日期的TextBox控件            AddAttributesToRender(writer);
ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件            _calendarTextBox.RenderControl(writer);
ASP.NET常用控件之1:用于选择日期的TextBox控件            _selectInputButton.RenderControl(writer);
ASP.NET常用控件之1:用于选择日期的TextBox控件            
ASP.NET常用控件之1:用于选择日期的TextBox控件            writer.Write(
"<br>");
ASP.NET常用控件之1:用于选择日期的TextBox控件            writer.RenderBeginTag(HtmlTextWriterTag.Div);
ASP.NET常用控件之1:用于选择日期的TextBox控件            writer.AddAttribute(HtmlTextWriterAttribute.Id,
"divCalendar");
ASP.NET常用控件之1:用于选择日期的TextBox控件            writer.AddAttribute(HtmlTextWriterAttribute.Style,
"DISPLAY:" + display + ";POSITION:absolute");
ASP.NET常用控件之1:用于选择日期的TextBox控件            _calendar.RenderControl(writer);
ASP.NET常用控件之1:用于选择日期的TextBox控件            writer.RenderEndTag();
ASP.NET常用控件之1:用于选择日期的TextBox控件        }

ASP.NET常用控件之1:用于选择日期的TextBox控件
ASP.NET常用控件之1:用于选择日期的TextBox控件    }

ASP.NET常用控件之1:用于选择日期的TextBox控件}