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

📄 datepicker.cs

📁 一个ASP.NET下的中文内容管理和社区系统
💻 CS
字号:
// DatePicker.cs
//

namespace ASPNET.StarterKit.Communities
{
    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Globalization;

    /// <summary>
    /// Summary description for DatePicker.
    /// </summary>
    public class DatePicker : WebControl, INamingContainer
    {
    

        DropDownList dropMonth;
        DropDownList dropDay;
        DropDownList dropYear;

        public int Month
        {
            get 
            { 
                if (ViewState["Month"] == null)
                    return DateTime.Now.Month;
                else
                    return (int)ViewState["Month"]; 
            }
            set { ViewState["Month"] = value; }
        }

        public int Day
        {
            get 
            {
                if (ViewState["Day"] == null)
                    return DateTime.Now.Day;
                else 
                    return (int)ViewState["Day"]; 
            }
            set { ViewState["Day"] = value; }
        }
        
        public int Year
        {
            get 
            { 
                if (ViewState["Year"] == null)
                    return DateTime.Now.Year;
                else
                    return (int)ViewState["Year"]; 
            }
            set 
            { 
                ViewState["Year"] = value; 
            }
        }

        public DateTime Date
        {
            get 
            { 
                EnsureChildControls();
                
                int _year = Int32.Parse(dropYear.SelectedItem.Value);
                int _month = Int32.Parse(dropMonth.SelectedItem.Value);
                int _day = Int32.Parse(dropDay.SelectedItem.Value);
                
                if (_day > DateTime.DaysInMonth(_year, _month) )
                    throw new ArgumentException("Invalid date!");
                
                return new DateTime
                    ( 
                        _year,
                        _month,
                        _day
                    );
            }
            set
            {
                Month = value.Month;
                Day = value.Day;
                Year = value.Year;
            }
        }


        protected override void CreateChildControls()
        {
            dropMonth = new DropDownList();
            Controls.Add(dropMonth);
        
            dropDay = new DropDownList();
            Controls.Add(dropDay);
            
            dropYear = new DropDownList();
            Controls.Add(dropYear);
 
            if (!Page.IsPostBack)
            {
                 // Get a DateTimeFormatInfo object
                DateTimeFormatInfo objDateInfo = DateTimeFormatInfo.CurrentInfo;
            
                // Display Months
                for (int i=1;i<objDateInfo.MonthNames.Length;i++)
                    dropMonth.Items.Add(new ListItem(objDateInfo.GetMonthName(i), i.ToString()));

                // Display Days
                for (int i=1;i<32;i++)
                    dropDay.Items.Add(i.ToString());

                // Display Years
                for (int i=DateTime.Now.Year - 5;i<DateTime.Now.Year+5;i++)
                    dropYear.Items.Add(i.ToString());
            

                dropMonth.Items.FindByValue(Month.ToString()).Selected = true;
                dropDay.Items.FindByValue(Day.ToString()).Selected = true;
                dropYear.Items.FindByValue(Year.ToString()).Selected = true;
             }    
        
        }


        protected override void Render(HtmlTextWriter tw)
        {
            // Get Date Parts
            string[] dateParts;
            try
            {
                DateTimeFormatInfo objDateInfo = DateTimeFormatInfo.CurrentInfo;
                dateParts = objDateInfo.ShortDatePattern.Split('/');
            }
            catch
            {
                dateParts = new string[]{"m","d","y"};
            }
            
            tw.RenderBeginTag(HtmlTextWriterTag.Table);
            tw.RenderBeginTag(HtmlTextWriterTag.Tr);
              tw.RenderBeginTag(HtmlTextWriterTag.Td);
              RenderDatePart(dateParts[0],tw);
              tw.RenderEndTag();

              tw.RenderBeginTag(HtmlTextWriterTag.Td);
              RenderDatePart(dateParts[1],tw);
              tw.RenderEndTag();

              tw.RenderBeginTag(HtmlTextWriterTag.Td);
              RenderDatePart(dateParts[2],tw);
              tw.RenderEndTag();

            tw.RenderEndTag(); // close row
            tw.RenderEndTag(); // close table
 
        
        }


        private void RenderDatePart(string datePart,HtmlTextWriter tw)
        {
            datePart = datePart.ToLower();
            
            if (datePart.StartsWith("m"))
                dropMonth.RenderControl(tw);
            else 
                if (datePart.StartsWith("d"))
                    dropDay.RenderControl(tw);
                else
                    dropYear.RenderControl(tw);
        }



    }
}

⌨️ 快捷键说明

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