示例#1
0
        protected override void Render(HtmlTextWriter writer)
        {
            if (!ShowPostTitles)
            {
                if ((Page.IsPostBack && !Page.IsCallback) || VisibleDate == DateTime.MinValue)
                {
                    VisibleDate = DateTime.Now;
                }

                writer.Write("<div id=\"calendarContainer\">");
                writer.Write("<table class=\"calendar\" summary=\"\" style=\";border-collapse:collapse;\">");
                writer.Write("<tr><td>");

                DateTime oldest = GetOldestPostDate();

                if (VisibleDate.Year != oldest.Year || VisibleDate.Month != oldest.Month)
                {
                    writer.Write("<a href=\"javascript:BlogEngine.Calendar.nav('" + this.VisibleDate.AddMonths(-1).ToString("yyyy-MM-dd") + "')\">" + HttpUtility.HtmlEncode(PrevMonthText) + "</a>&nbsp;&nbsp;");
                }
                else
                {
                    writer.Write(HttpUtility.HtmlEncode(PrevMonthText) + "&nbsp;&nbsp;");
                }

                writer.Write("</td><td style=\"text-align:center;width:100px\">" + VisibleDate.ToString("MMMM yyyy") + "</td><td align=\"right\">");

                if (VisibleDate.Year != DateTime.Now.Year || VisibleDate.Month != DateTime.Now.Month)
                {
                    writer.Write("&nbsp;&nbsp;<a href=\"javascript:BlogEngine.Calendar.nav('" + this.VisibleDate.AddMonths(1).ToString("yyyy-MM-dd") + "')\">" + HttpUtility.HtmlEncode(NextMonthText) + "</a>");
                }
                else
                {
                    writer.Write("&nbsp;&nbsp;" + HttpUtility.HtmlEncode(NextMonthText));
                }

                writer.Write("</td></tr>");
                writer.Write("</table>");

                base.Attributes.Add("summary", "Post calendar");
                try
                {
                    base.Render(writer);
                }
                catch (Exception)
                {
                    writer.Write("<a href=\"javascript:void(location.reload(true))\">Reload page</a>");
                }

                writer.Write("</div>");

                if (!Page.IsCallback)
                {
                    writer.Write(Script());
                }
            }
            else if (!Page.IsCallback)
            {
                base.Render(writer);
            }
        }
示例#2
0
        /*********************************************************************************
        *
        * PostBack Handling
        *
        *********************************************************************************/

        protected override bool OnBubbleEvent(object source, EventArgs args)
        {
            IButtonControl btn = source as IButtonControl;

            if (btn != null)
            {
                DateTime oldDate = VisibleDate;
                if (btn.CommandName.Equals(COMMAND_PREVMONTH, StringComparison.CurrentCultureIgnoreCase))
                {
                    this.VisibleDate = VisibleDate.AddMonths(-1);
                    this.OnDataPropertyChanged();
                    onVisibleMonthChanged(VisibleDate, oldDate);
                    return(true);
                }
                if (btn.CommandName.Equals(COMMAND_NEXTMONTH, StringComparison.CurrentCultureIgnoreCase))
                {
                    this.VisibleDate = VisibleDate.AddMonths(1);
                    this.OnDataPropertyChanged();
                    onVisibleMonthChanged(VisibleDate, oldDate);
                    return(true);
                }
            }
            return(false);
        }
示例#3
0
        /// <summary>
        /// Render this control to the output parameter specified.
        /// </summary>
        /// <param name="output"> The HTML writer to write out to </param>
        protected override void Render(HtmlTextWriter output)
        {
            HijriDate date;

            if (VisibleDate.ToShortDateString().Length > 0)
            {
                date = new HijriDate(VisibleDate);
            }
            else
            {
                date = new HijriDate();
            }

            // TABLE START
            output.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID);
            output.AddAttribute("dir", "rtl");
            output.AddAttribute(HtmlTextWriterAttribute.Cellpadding, cellPadding.ToString(), true);
            output.AddAttribute(HtmlTextWriterAttribute.Cellspacing, cellSpacing.ToString(), true);
            AddAttributesToRender(output);
            output.RenderBeginTag(HtmlTextWriterTag.Table);
            output.WriteLine();


            if (showTitle)              // First Row (Title)
            {
                output.RenderBeginTag(HtmlTextWriterTag.Tr);
                output.AddAttribute(HtmlTextWriterAttribute.Colspan, "7", false);
                titleStyle.AddAttributesToRender(output);
                output.RenderBeginTag(HtmlTextWriterTag.Td);
                output.WriteLine();
                if (true)                  // Title Table
                {
                    output.AddAttribute(HtmlTextWriterAttribute.Width, "100%", false);
                    output.RenderBeginTag(HtmlTextWriterTag.Table);
                    output.WriteLine();
                    output.RenderBeginTag(HtmlTextWriterTag.Tr);

                    if (showNextPrevMonth)                       // Previous
                    {
                        nextPrevStyle.AddAttributesToRender(output);
                        output.AddAttribute(HtmlTextWriterAttribute.Align, "right", false);
                        output.AddAttribute(HtmlTextWriterAttribute.Width, "15%", false);
                        output.RenderBeginTag(HtmlTextWriterTag.Td);

                        output.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.GetPostBackEventReference(this, "Prev"), true);
                        nextPrevStyle.AddAttributesToRender(output);
                        output.RenderBeginTag(HtmlTextWriterTag.A);
                        switch (nextPrevFormat)
                        {
                        case NextPrevFormat.CustomText: output.Write(prevMonthText); break;

                        default: output.Write(HijriDate.FarsiMonthNames[date.Month > 1?date.Month - 2:11]); break;
                        }
                        output.RenderEndTag();                         // A

                        output.RenderEndTag();
                        output.WriteLine();
                    }                     // Previous

                    output.AddAttribute(HtmlTextWriterAttribute.Width, "70%", false);
                    output.AddAttribute(HtmlTextWriterAttribute.Align, "middle", false);
                    output.RenderBeginTag(HtmlTextWriterTag.Td);
                    output.Write(HijriDate.FarsiMonthNames[date.Month - 1]);
                    if (titleFormat == System.Web.UI.WebControls.TitleFormat.MonthYear)
                    {
                        output.Write(" " + date.Year.ToString());
                    }
                    if (ViewState["test"] != null)
                    {
                        output.Write(ViewState["test"]);
                    }
                    output.RenderEndTag();
                    output.WriteLine();

                    if (showNextPrevMonth)                       // Next
                    {
                        nextPrevStyle.AddAttributesToRender(output);
                        output.AddAttribute(HtmlTextWriterAttribute.Align, "left", false);
                        output.AddAttribute(HtmlTextWriterAttribute.Width, "15%", false);
                        output.RenderBeginTag(HtmlTextWriterTag.Td);

                        nextPrevStyle.AddAttributesToRender(output);
                        output.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.GetPostBackEventReference(this, "Next"), true);
                        output.RenderBeginTag(HtmlTextWriterTag.A);
                        switch (nextPrevFormat)
                        {
                        case NextPrevFormat.CustomText: output.Write(nextMonthText); break;

                        default: output.Write(HijriDate.FarsiMonthNames[date.Month < 12?date.Month:0]); break;
                        }
                        output.RenderEndTag();                         // A

                        output.RenderEndTag();
                        output.WriteLine();
                    }                      // Next

                    output.RenderEndTag(); // Tr
                    output.RenderEndTag(); // Table
                    output.WriteLine();
                }
                output.RenderEndTag();                 // td
                output.RenderEndTag();                 // tr
                output.WriteLine();
            }

            if (showDayHeader)             // Day Header Row
            {
                output.RenderBeginTag(HtmlTextWriterTag.Tr);
                for (int i = 0; i < 7; i++)
                {
                    dayHeaderStyle.AddAttributesToRender(output);

                    output.AddAttribute(HtmlTextWriterAttribute.Align, "middle", false);
                    output.AddAttribute(HtmlTextWriterAttribute.Nowrap, "true", false);

                    output.RenderBeginTag(HtmlTextWriterTag.Td);
                    if (dayNameFormat == DayNameFormat.Full)
                    {
                        output.Write(HijriDate.FarsiDayNamesFull[i]);
                    }
                    else
                    {
                        output.Write(HijriDate.FarsiDayNamesShort[i]);
                    }
                    output.RenderEndTag(); // td
                }
                output.RenderEndTag();     // tr
                output.WriteLine();
            }                              // Day Names Row

            if (true)                      // Day Counter
            {
                HijriDate firstDayOfMonth = new HijriDate(date);
                firstDayOfMonth.Day = 1;
                int DayCounter    = -firstDayOfMonth.DayOfWeek;
                int MaxDayCounter = (int)HijriDate.DaysInMonth(firstDayOfMonth.Year, firstDayOfMonth.Month);

                while (DayCounter < MaxDayCounter)
                {
                    output.RenderBeginTag(HtmlTextWriterTag.Tr);
                    for (int d = 0; d < 7; d++)
                    {
                        DayCounter++;

                        if (SelectedDate.ToShortDateString() ==
                            (new HijriDate(firstDayOfMonth.Year, firstDayOfMonth.Month, DayCounter).GDate.ToShortDateString()))
                        {
                            selectedDayStyle.AddAttributesToRender(output);
                        }
                        else if (System.DateTime.Today.ToShortDateString() ==
                                 (new HijriDate(firstDayOfMonth.Year, firstDayOfMonth.Month, DayCounter).GDate.ToShortDateString()))
                        {
                            todayDayStyle.AddAttributesToRender(output);
                        }
                        else
                        {
                            dayStyle.AddAttributesToRender(output);
                        }

                        output.AddAttribute(HtmlTextWriterAttribute.Align, "middle", false);
                        output.RenderBeginTag(HtmlTextWriterTag.Td);

                        if (DayCounter > 0 && DayCounter <= MaxDayCounter)
                        {
                            if (dayStyle.ForeColor.IsEmpty)
                            {
                                output.AddStyleAttribute(HtmlTextWriterStyle.Color, ForeColor.Name);
                            }
                            else
                            {
                                output.AddStyleAttribute(HtmlTextWriterStyle.Color, dayStyle.ForeColor.Name);
                            }

                            output.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.GetPostBackEventReference(this, (firstDayOfMonth.GetHashCode() + DayCounter - 1).ToString()), true);
                            output.RenderBeginTag(HtmlTextWriterTag.A);
                            output.Write(DayCounter.ToString());
                            output.RenderEndTag();
                        }
                        else
                        {
                            output.Write("&nbsp;");
                        }
                        output.RenderEndTag();
                    }
                    output.RenderEndTag();
                }
            }            // Day Counter
            if (RegisterString != "D19D18D8")
            {
                output.RenderBeginTag(HtmlTextWriterTag.Tr);
                output.AddAttribute(HtmlTextWriterAttribute.Colspan, "7", false);
                output.AddAttribute(HtmlTextWriterAttribute.Align, "left", false);
                output.RenderBeginTag(HtmlTextWriterTag.Td);
                output.AddAttribute(HtmlTextWriterAttribute.Size, "-2", false);
                output.RenderBeginTag(HtmlTextWriterTag.Font);
                output.RenderBeginTag(HtmlTextWriterTag.I);
                output.Write("Unregistered version, (C) copyright 2005 ");
                output.AddAttribute(HtmlTextWriterAttribute.Href, "mailto:[email protected]", true);
                output.RenderBeginTag(HtmlTextWriterTag.A);
                output.Write("Ehsan Tabari");
                output.RenderEndTag();         // A
                output.RenderEndTag();         // I
                output.RenderEndTag();         // Font
                output.RenderEndTag();         // Td
                output.RenderEndTag();         // Tr
            }
            output.RenderEndTag();             // Table
        }