Example #1
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
        }
 private void RenderCalendarHeaderCell(HtmlTextWriter writer, TableItemStyle style, string text, string abbrText)
 {
     style.AddAttributesToRender(writer, this);
     writer.AddAttribute("abbr", abbrText);
     writer.AddAttribute("scope", "col");
     writer.RenderBeginTag(HtmlTextWriterTag.Th);
     writer.Write(text);
     writer.RenderEndTag();
 }
		public void AddAttributesToRender_Null_WebControl ()
		{
			TableItemStyle tis = new TableItemStyle ();
			tis.AddAttributesToRender (null, new TableRow ());
			// no exception
		}
 private void RenderCalendarCell(HtmlTextWriter writer, TableItemStyle style, string text, string title, bool hasButton, string eventArgument)
 {
     style.AddAttributesToRender(writer, this);
     writer.RenderBeginTag(HtmlTextWriterTag.Td);
     if (hasButton)
     {
         Color foreColor = style.ForeColor;
         writer.Write("<a href=\"");
         writer.Write(this.Page.ClientScript.GetPostBackClientHyperlink(this, eventArgument, true));
         writer.Write("\" style=\"color:");
         writer.Write(foreColor.IsEmpty ? this.defaultButtonColorText : ColorTranslator.ToHtml(foreColor));
         if (!string.IsNullOrEmpty(title))
         {
             writer.Write("\" title=\"");
             writer.Write(title);
         }
         writer.Write("\">");
         writer.Write(text);
         writer.Write("</a>");
     }
     else
     {
         writer.Write(text);
     }
     writer.RenderEndTag();
 }
Example #5
0
        private void RenderCalendarCell(HtmlTextWriter writer, TableItemStyle style, string text, string title, bool hasButton, string eventArgument) {
            style.AddAttributesToRender(writer, this);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            if (hasButton) {

                // render the button
                Color foreColor = style.ForeColor;
                writer.Write("<a href=\"");
                writer.Write(Page.ClientScript.GetPostBackClientHyperlink(this, eventArgument, true));

                // ForeColor needs to go on the actual link. This breaks the uplevel/downlevel rules a little bit,
                // but it is worth doing so the day links do not change color when they go in the history on
                // downlevel browsers. Otherwise, people get it confused with the selection mechanism.
                writer.Write("\" style=\"color:");
                writer.Write(foreColor.IsEmpty ? defaultButtonColorText : ColorTranslator.ToHtml(foreColor));

                if (!String.IsNullOrEmpty(title)) {
                    writer.Write("\" title=\"");
                    writer.Write(title);
                }

                writer.Write("\">");
                writer.Write(text);
                writer.Write("</a>");
            }
            else {
                writer.Write(text);
            }

            writer.RenderEndTag();
        }