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> "); } else { writer.Write(HttpUtility.HtmlEncode(PrevMonthText) + " "); } 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(" <a href=\"javascript:BlogEngine.Calendar.nav('" + this.VisibleDate.AddMonths(1).ToString("yyyy-MM-dd") + "')\">" + HttpUtility.HtmlEncode(NextMonthText) + "</a>"); } else { writer.Write(" " + 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); } }
/********************************************************************************* * * 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); }
/// <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(" "); } 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 }