⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dropdowncalendar.cs

📁 asp.net下拉日期控件源码,非常好用。
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Drawing;  
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Meta.Web.Controls
{    
    [ToolboxData("<{0}:DropDownCalendar runat=server></{0}:DropDownCalendar>"),
    ToolboxBitmap(typeof(Meta.Web.Controls.DropDownCalendar), "Resource.Control.bmp")]
    public class DropDownCalendar : WebControl
    {
        #region"privatepro"
        private TableItemStyle titleStyle;
        private TableItemStyle dayStyle;
        private TableItemStyle nextprevStyle;  
        private TableItemStyle dayHeaderStyle;        
        private TableItemStyle weekendDayStyle;       
        private TableItemStyle dateStyle;
        private Style buttonStyle;       
        #endregion

        #region"init"
        public DropDownCalendar()
        {
            titleStyle = new TableItemStyle();
            dayStyle = new TableItemStyle();
            nextprevStyle = new TableItemStyle();           
            dayHeaderStyle = new TableItemStyle();            
            weekendDayStyle = new TableItemStyle();            
            dateStyle = new TableItemStyle();
            buttonStyle = new Style(); 
        }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            if (Page != null)
            {
                ClientScriptManager cs = Page.ClientScript;
                Type cstype = Page.GetType();
                if (!cs.IsClientScriptBlockRegistered(cstype, key))
                    cs.RegisterClientScriptBlock(cstype, key, script, false);

                if ( Page.IsPostBack)
                {
                    string y = Page.Request.Form[ID + "_yeartext"];
                    string m = Page.Request.Form[ID + "_monthtext"];
                    string d = Page.Request.Form[ID + "_daytext"];
                    try{
                        Value = DateTime.Parse(y + "-" + m + "-" + d);
                    } catch {
                        Value = DateTime.Today;
                    }
                }
            }
        }
        #endregion

        #region"styles"
        [Category("Styles"), PersistenceMode(PersistenceMode.InnerProperty)]
        public TableItemStyle TitleStyle { get { return titleStyle; } }
        [Category("Styles"), PersistenceMode(PersistenceMode.InnerProperty)]
        public TableItemStyle DayStyle { get { return dayStyle; } }
        [Category("Styles"), PersistenceMode(PersistenceMode.InnerProperty)]
        public TableItemStyle NextPrevStyle { get { return nextprevStyle; } }        
        [Category("Styles"), PersistenceMode(PersistenceMode.InnerProperty)]
        public TableItemStyle DayHeaderStyle { get { return dayHeaderStyle; } }
        [Category("Styles"), PersistenceMode(PersistenceMode.InnerProperty)]
        public TableItemStyle WeekendDayStyle { get { return weekendDayStyle; } }
        [Category("Styles"), PersistenceMode(PersistenceMode.InnerProperty)]
        public TableItemStyle DateStyle { get { return dateStyle; } }
        [Category("Styles"), PersistenceMode(PersistenceMode.InnerProperty)]
        public Style ButtonStyle { get { return buttonStyle; } }
        
        #endregion

        #region"pro"

        [
        Category("Behavior"),
        DefaultValue(""),
        PersistenceMode(PersistenceMode.Attribute),
        ]
        public DateTime Value
        {
            get
            {
                Object obj = ViewState["Value"];
                return ((obj == null) ? DateTime.Today : (DateTime)obj);
            }

            set { ViewState["Value"] = value; }
        }

        #endregion

        #region "render"

        public override void RenderBeginTag(HtmlTextWriter writer) { }
        public override void RenderEndTag(HtmlTextWriter writer) { }
        private void RenderSeparator(HtmlTextWriter writer, string s)
        {
            writer.AddAttribute(HtmlTextWriterAttribute.Width, "10%");
            writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(s);
            writer.RenderEndTag();  //td
        }
        private void RenderInput(HtmlTextWriter writer,string id,string value)
        {
             string val = value.Length == 1 ? "0" + value : value;             
             writer.AddAttribute(HtmlTextWriterAttribute.Width, "16%");
             writer.RenderBeginTag(HtmlTextWriterTag.Td);         
             writer.AddAttribute(HtmlTextWriterAttribute.Id, id);
             writer.AddAttribute(HtmlTextWriterAttribute.Name, id);
             writer.AddStyleAttribute(HtmlTextWriterStyle.BorderStyle, "none");
             writer.AddStyleAttribute(HtmlTextWriterStyle.BorderWidth, "0");
             writer.AddStyleAttribute(HtmlTextWriterStyle.BackgroundColor, "transparent");       
             writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
             writer.AddAttribute(HtmlTextWriterAttribute.Value, val);
             writer.AddAttribute(HtmlTextWriterAttribute.Onchange, "validate('" + this.ID + "')");
             writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "center");
             writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
             writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
             writer.RenderBeginTag(HtmlTextWriterTag.Input);
             writer.RenderEndTag();  //Input
             writer.RenderEndTag();  //td
        }
      
        protected override void RenderContents(HtmlTextWriter writer)
        {
            this.AddAttributesToRender(writer);
            if (BorderStyle == BorderStyle.NotSet)
                writer.AddStyleAttribute("border", "2px inset");
            if ( Width == Unit.Empty)
                writer.AddAttribute(HtmlTextWriterAttribute.Width, "1px");           
            writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
            writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");           
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            RenderInput(writer, ID + "_yeartext", Value.Year.ToString());
            RenderSeparator(writer,"年");
            RenderInput(writer, ID + "_monthtext", Value.Month.ToString());
            RenderSeparator(writer, "月");
            RenderInput(writer, ID + "_daytext", Value.Day.ToString());
            RenderSeparator(writer, "日");
            writer.AddAttribute(HtmlTextWriterAttribute.Width, "20%");
            writer.AddAttribute(HtmlTextWriterAttribute.Align, "right");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            ButtonStyle.AddAttributesToRender(writer); 
            writer.AddAttribute(HtmlTextWriterAttribute.Id, ID + "_button");
            writer.AddAttribute(HtmlTextWriterAttribute.Type, "button");
            writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "showCalendar('" + this.ID + "')");           
            writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "18px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
            writer.RenderBeginTag(HtmlTextWriterTag.Input);
            writer.RenderEndTag();  //Input
            writer.RenderEndTag();  //td
            
            writer.RenderEndTag();  //tr
            writer.RenderEndTag();  //table

            if (this.DesignMode)
                return;    
  
            DateStyle.AddAttributesToRender(writer);
            if (DateStyle.Width == Unit.Empty)
                writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "200px");
            if (DateStyle.BorderStyle ==  BorderStyle.NotSet)
                writer.AddStyleAttribute("border", "1px outset");
            writer.AddAttribute(HtmlTextWriterAttribute.Id, ID + "_date");
            //writer.AddAttribute("onmouseout", "showCalendar('" + this.ID + "',false)");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Position, "absolute");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Visibility, "hidden");    
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
            writer.AddAttribute(HtmlTextWriterAttribute.Height, "100%");
            writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
            writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
            writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
            writer.AddStyleAttribute(HtmlTextWriterStyle.BorderCollapse, "collapse");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Cursor, "hand");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
         
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            TitleStyle.AddAttributesToRender(writer);
            writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "7");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
            writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
            writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            NextPrevStyle.AddAttributesToRender(writer);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);//1td
            writer.AddAttribute(HtmlTextWriterAttribute.Title, "转到上一个月");
            writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "changemonth('"+ ID + "',-1)");
            writer.RenderBeginTag(HtmlTextWriterTag.A); //1a
            writer.Write("<");
            writer.RenderEndTag();  //1a

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -