天天看點

部落格上的月曆控件的初步實作

臨時存放

部落格上的月曆控件的初步實作

using  System;

部落格上的月曆控件的初步實作

using  System.Collections.Generic;

部落格上的月曆控件的初步實作

using  System.Text;

部落格上的月曆控件的初步實作

using  System.Web.UI;

部落格上的月曆控件的初步實作

using  System.ComponentModel;

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

namespace  ClassLibrary1

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

    public class  BlogDateControl:System.Web.UI.WebControls.WebControl,System.Web.UI.INamingContainer,System.Web.UI.IPostBackEventHandler   

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

        private static readonly object ClickKey=new object();

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        [Description("單擊日期觸發的時間!")]

部落格上的月曆控件的初步實作

        public event EventHandler Click

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

            add

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                Events.AddHandler(ClickKey, value);

部落格上的月曆控件的初步實作

            }

部落格上的月曆控件的初步實作

            remove

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                Events.RemoveHandler(ClickKey, value);

部落格上的月曆控件的初步實作

            }

部落格上的月曆控件的初步實作

        }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        private static readonly string[] header = new string[] 

部落格上的月曆控件的初步實作

{ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        private DateTime showDate;

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        /// <summary>

部落格上的月曆控件的初步實作

        /// Gets or sets the show date.

部落格上的月曆控件的初步實作

        /// </summary>

部落格上的月曆控件的初步實作

        /// <value>The show date.</value>

部落格上的月曆控件的初步實作

        [Description("格式必須為yyyy-MM一樣")] 

部落格上的月曆控件的初步實作

        public string ShowDate

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

            get 

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                if (showDate == null)

部落格上的月曆控件的初步實作

                    showDate = Convert.ToDateTime(System.DateTime.Now.Year + "-" + System.DateTime.Now.Month + "-01");

部落格上的月曆控件的初步實作

                return showDate.ToString("yyyy-MM"); 

部落格上的月曆控件的初步實作

            }

部落格上的月曆控件的初步實作

            set 

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                if (value == null)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                    showDate = Convert.ToDateTime(System.DateTime.Now.Year + "-" + System.DateTime.Now.Month + "-01");    

部落格上的月曆控件的初步實作

                }

部落格上的月曆控件的初步實作

                else

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                    showDate = Convert.ToDateTime(value+"-01");

部落格上的月曆控件的初步實作

                }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

            }

部落格上的月曆控件的初步實作

        }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        protected override void AddAttributesToRender(HtmlTextWriter writer)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

            //為table标簽定義屬性和樣式

部落格上的月曆控件的初步實作

           // writer.AddAttribute(HtmlTextWriterAttribute.Width, "287px");

部落格上的月曆控件的初步實作

            //writer.AddStyleAttribute(HtmlTextWriterStyle.BorderWidth, "1px");

部落格上的月曆控件的初步實作

            writer.AddAttribute(HtmlTextWriterAttribute.Border, "1px");

部落格上的月曆控件的初步實作

            writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");

部落格上的月曆控件的初步實作

            writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");

部落格上的月曆控件的初步實作

            base.AddAttributesToRender(writer);

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        /// <summary>

部落格上的月曆控件的初步實作

        /// 擷取與此 Web 伺服器控件相對應的 <see cref="T:System.Web.UI.HtmlTextWriterTag"></see> 值。此屬性主要由控件開發人員使用。

部落格上的月曆控件的初步實作

        /// </summary>

部落格上的月曆控件的初步實作

        /// <value></value>

部落格上的月曆控件的初步實作

        /// <returns><see cref="T:System.Web.UI.HtmlTextWriterTag"></see> 枚舉值之一。</returns>

部落格上的月曆控件的初步實作

        protected override HtmlTextWriterTag TagKey

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

            get

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                return HtmlTextWriterTag.Table;

部落格上的月曆控件的初步實作

            }

部落格上的月曆控件的初步實作

        }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        /// <summary>

部落格上的月曆控件的初步實作

        /// 将控件的内容呈現到指定的編寫器中。此方法主要由控件開發人員使用。

部落格上的月曆控件的初步實作

        /// </summary>

部落格上的月曆控件的初步實作

        /// <param name="writer"><see cref="T:System.Web.UI.HtmlTextWriter"></see>,表示要在用戶端呈現 HTML 内容的輸出流。</param>

部落格上的月曆控件的初步實作

        protected override void RenderContents(HtmlTextWriter writer)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

            writer.RenderBeginTag(HtmlTextWriterTag.Thead);

部落格上的月曆控件的初步實作

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);

部落格上的月曆控件的初步實作

            writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");

部落格上的月曆控件的初步實作

            writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "7");

部落格上的月曆控件的初步實作

            writer.RenderBeginTag(HtmlTextWriterTag.Td);

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

            writer.Write(this.showDate.Year+"年"+this.showDate.Month+"月");

部落格上的月曆控件的初步實作

            writer.RenderEndTag();

部落格上的月曆控件的初步實作

            writer.RenderEndTag();

部落格上的月曆控件的初步實作

            writer.RenderEndTag();

部落格上的月曆控件的初步實作

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);

部落格上的月曆控件的初步實作

            for (int i = 0; i < BlogDateControl.header.Length; i++)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                writer.RenderBeginTag(HtmlTextWriterTag.Td);

部落格上的月曆控件的初步實作

                writer.Write(BlogDateControl.header[i]);

部落格上的月曆控件的初步實作

                writer.RenderEndTag();

部落格上的月曆控件的初步實作

            }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

            writer.RenderEndTag();

部落格上的月曆控件的初步實作

            DateTime end=this.showDate.AddMonths(1);

部落格上的月曆控件的初步實作

            int days=((TimeSpan)end.Subtract(this.showDate)).Days;

部落格上的月曆控件的初步實作

            int spaceday = Convert.ToInt32(this.showDate.DayOfWeek);

部落格上的月曆控件的初步實作

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);

部落格上的月曆控件的初步實作

            for (int i = 0; i < spaceday; i++)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                writer.RenderBeginTag(HtmlTextWriterTag.Td);

部落格上的月曆控件的初步實作

                writer.WriteLine("&nbsp;");

部落格上的月曆控件的初步實作

                writer.RenderEndTag();

部落格上的月曆控件的初步實作

            }

部落格上的月曆控件的初步實作

            for (int i = 1; i <= days; i++)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                writer.Write("<td οnclick=\"");

部落格上的月曆控件的初步實作

                writer.Write(Page.GetPostBackEventReference(this, this.ShowDate+"-"+i.ToString().PadLeft(2,'0')));

部落格上的月曆控件的初步實作

                writer.Write("\">"+i.ToString()+"</td>");

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

                //writer.RenderEndTag();

部落格上的月曆控件的初步實作

                if ((i + spaceday) % 7 == 0)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                    writer.RenderEndTag();

部落格上的月曆控件的初步實作

                    writer.RenderBeginTag(HtmlTextWriterTag.Tr);

部落格上的月曆控件的初步實作

                }

部落格上的月曆控件的初步實作

            }

部落格上的月曆控件的初步實作

            if ((spaceday + days) % 7 != 0)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                int allcount = spaceday + days > 35 ? 42 : 35;

部落格上的月曆控件的初步實作

                for (int i = 0; i < allcount - spaceday - days; i++)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                    writer.RenderBeginTag(HtmlTextWriterTag.Td);

部落格上的月曆控件的初步實作

                    writer.Write("&nbsp;");

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

                    writer.RenderEndTag();

部落格上的月曆控件的初步實作

                }

部落格上的月曆控件的初步實作

                writer.RenderEndTag();

部落格上的月曆控件的初步實作

            }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        protected virtual void OnClick(StringEventArgs e)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

            EventHandler clickEventDelegate =

部落格上的月曆控件的初步實作

               (EventHandler)Events[ClickKey];

部落格上的月曆控件的初步實作

            if (clickEventDelegate != null)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

                clickEventDelegate(this, e);

部落格上的月曆控件的初步實作

            }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        IPostBackEventHandler 成員#region IPostBackEventHandler 成員

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        public void  RaisePostBackEvent(string eventArgument)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

             //throw new Exception("The method or operation is not implemented.");

部落格上的月曆控件的初步實作

            OnClick(new StringEventArgs(eventArgument));

部落格上的月曆控件的初步實作

        }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        #endregion

部落格上的月曆控件的初步實作

}

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

    public class StringEventArgs : EventArgs

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

        private string argString;

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        public string ArgString

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

            get 

部落格上的月曆控件的初步實作

{ return argString; }

部落格上的月曆控件的初步實作

        }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        public StringEventArgs(string arg)

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

            this.argString = arg;

部落格上的月曆控件的初步實作

        }

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

        public override string ToString()

部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作
部落格上的月曆控件的初步實作

{

部落格上的月曆控件的初步實作

            return this.argString;

部落格上的月曆控件的初步實作

        }

部落格上的月曆控件的初步實作

    }

部落格上的月曆控件的初步實作

}

部落格上的月曆控件的初步實作

轉載于:https://www.cnblogs.com/deadshot123/archive/2007/05/21/753682.html

ui