Esempio n. 1
0
        /// <summary>
        /// This method create a selector based on the parameters.
        /// </summary>
        /// <param name="output">The HtmlTextWriter to write.</param>
        /// <param name="suffix">The suffix to use to identify the selector with the LoadPostData method.</param>
        /// <param name="style">The style class to use.</param>
        /// <param name="onchange">The value of the OnChange attribute of the selector to use with the client side validator.</param>
        /// <param name="min">The minimum value of the selector.</param>
        /// <param name="max">The maximum value of the selector.</param>
        /// <param name="padding">The number of chars to use with padding.</param>
        /// <param name="selectedValue">The selected value.</param>
        private void WriteSelector(HtmlTextWriter output, string suffix, System.Web.UI.WebControls.Style style, string onchange, int min, int max, int padding, int selectedValue)
        {
            // Some variable we will use
            int index;

            // Check if the actual year value can be displayed in the selector
            if (selectedValue < min || selectedValue > max)
            {
                throw new Exception("The year value (" + Date.Year.ToString() + ") of the Date property is greater than the maximum (" + max.ToString() + ") or less than the minimum (" + min.ToString() + "). Please adjust values or set AutoAdjust property to true.");
            }

            // Write the selector
            output.AddAttribute(HtmlTextWriterAttribute.Name, UniqueID + suffix);

            // Render the validation action code only if needed
            if (_renderUplevel && onchange != null)
            {
                output.AddAttribute(HtmlTextWriterAttribute.Onchange, onchange);
            }

            // Add the styles to the selector after the merge with the base style.
            style.MergeWith(_baseStyle);
            style.AddAttributesToRender(output);

            output.RenderBeginTag(HtmlTextWriterTag.Select);

            // Write the option tags
            for (index = min; index <= max; index++)
            {
                output.AddAttribute(HtmlTextWriterAttribute.Value, index.ToString());

                // Set the selected value
                if (index == selectedValue)
                {
                    output.AddAttribute(HtmlTextWriterAttribute.Selected, null);
                }

                output.RenderBeginTag(HtmlTextWriterTag.Option);
                if (suffix == "_month" && !_monthNamesDisabled)
                {
                    output.InnerWriter.Write(_months[index - 1]);
                }
                else
                {
                    output.InnerWriter.Write(index.ToString().PadLeft(padding, '0'));
                }
                output.RenderEndTag();
            }

            // Write the selector end tag
            output.RenderEndTag();
        }
Esempio n. 2
0
		public void Style_Merge ()
		{
			Style s = new Style ();
			Style copy = new Style ();

			SetSomeValues(s);
			copy.ForeColor = Color.Blue;

			copy.MergeWith(s);
			Assert.AreEqual (Color.Red, copy.BackColor, "Merge1");
			Assert.AreEqual (Color.Blue, copy.ForeColor, "Merge2");

			// Don't fail here
			copy.MergeWith(null);
		}
 /// <devdoc>
 ///    <para>Push style on stack, but do not open it.  Used for pending styles, as in the panel and page adapters.</para>
 /// </devdoc>
 internal void PushPanelStyle(Style style) {
     Style stackStyle = new Style();
     if (_panelStyleStack.Count == 0) {
         stackStyle.CopyFrom(style);
         _panelStyleStack.Push(stackStyle);
         return;
     }
     stackStyle.CopyFrom((Style)_panelStyleStack.Peek());
     stackStyle.MergeWith(style);
     _panelStyleStack.Push(stackStyle);
 }
        protected override void CreateChildControls()
        {
            LinkButton lnkPrevMon = new LinkButton();

            lnkPrevMon.ID     = "lnkPrevMon";
            lnkPrevMon.Text   = this.PrevMonthText;
            lnkPrevMon.Click += new EventHandler(this.lnkPrevMon_OnClick);
            this._lnkPrevMon  = lnkPrevMon;

            LinkButton lnkNextMon = new LinkButton();

            lnkNextMon.ID     = "lnkNextMon";
            lnkNextMon.Text   = this.NextMonthText;
            lnkNextMon.Click += new EventHandler(this.lnkNextMon_OnClick);
            this._lnkNextMon  = lnkNextMon;

            Style hdrTextStyle = new System.Web.UI.WebControls.Style();

            hdrTextStyle.MergeWith(this._dayHdrStyle);
            hdrTextStyle.BorderStyle = BorderStyle.None;

            LinkButton lnkHdrSun = new LinkButton();

            lnkHdrSun.ID   = "lnkHdrSun";
            lnkHdrSun.Text = this.GetDayName(DayOfWeek.Sunday);
            lnkHdrSun.ApplyStyle(hdrTextStyle);
            lnkHdrSun.CommandName     = "ShowDay";
            lnkHdrSun.CommandArgument = DayOfWeek.Sunday.ToString();
            lnkHdrSun.Command        += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrSun           = lnkHdrSun;

            LinkButton lnkHdrMon = new LinkButton();

            lnkHdrMon.ID   = "lnkHdrMon";
            lnkHdrMon.Text = this.GetDayName(DayOfWeek.Monday);
            lnkHdrMon.ApplyStyle(hdrTextStyle);
            lnkHdrMon.CommandName     = "ShowDay";
            lnkHdrMon.CommandArgument = DayOfWeek.Monday.ToString();
            lnkHdrMon.Command        += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrMon           = lnkHdrMon;

            LinkButton lnkHdrTue = new LinkButton();

            lnkHdrTue.ID   = "lnkHdrTue";
            lnkHdrTue.Text = this.GetDayName(DayOfWeek.Tuesday);
            lnkHdrTue.ApplyStyle(hdrTextStyle);
            lnkHdrTue.CommandName     = "ShowDay";
            lnkHdrTue.CommandArgument = DayOfWeek.Tuesday.ToString();
            lnkHdrTue.Command        += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrTue           = lnkHdrTue;

            LinkButton lnkHdrWed = new LinkButton();

            lnkHdrWed.ID   = "lnkHdrWed";
            lnkHdrWed.Text = this.GetDayName(DayOfWeek.Wednesday);
            lnkHdrWed.ApplyStyle(hdrTextStyle);
            lnkHdrWed.CommandName     = "ShowDay";
            lnkHdrWed.CommandArgument = DayOfWeek.Wednesday.ToString();
            lnkHdrWed.Command        += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrWed           = lnkHdrWed;

            LinkButton lnkHdrThu = new LinkButton();

            lnkHdrThu.ID   = "lnkHdrThu";
            lnkHdrThu.Text = this.GetDayName(DayOfWeek.Thursday);
            lnkHdrThu.ApplyStyle(hdrTextStyle);
            lnkHdrThu.CommandName     = "ShowDay";
            lnkHdrThu.CommandArgument = DayOfWeek.Thursday.ToString();
            lnkHdrThu.Command        += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrThu           = lnkHdrThu;

            LinkButton lnkHdrFri = new LinkButton();

            lnkHdrFri.ID   = "lnkHdrFri";
            lnkHdrFri.Text = this.GetDayName(DayOfWeek.Friday);
            lnkHdrFri.ApplyStyle(hdrTextStyle);
            lnkHdrFri.CommandName     = "ShowDay";
            lnkHdrFri.CommandArgument = DayOfWeek.Friday.ToString();
            lnkHdrFri.Command        += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrFri           = lnkHdrFri;

            LinkButton lnkHdrSat = new LinkButton();

            lnkHdrSat.ID   = "lnkHdrSat";
            lnkHdrSat.Text = this.GetDayName(DayOfWeek.Saturday);
            lnkHdrSat.ApplyStyle(hdrTextStyle);
            lnkHdrSat.CommandName     = "ShowDay";
            lnkHdrSat.CommandArgument = DayOfWeek.Saturday.ToString();
            lnkHdrSat.Command        += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrSat           = lnkHdrSat;

            // Create all link buttons for the days we're going to display.
            if (this._lnkDates != null)
            {
                this._lnkDates.Clear();
            }
            this._lnkDates = new Collections.WebControlCollection();
            DateTime curWkStart = this.GetCalFirstDay();

            while (curWkStart.Date < this.dtCurMon.AddMonths(1))
            {
                DateTime curDay = curWkStart;
                for (int i = 0; i < 7; i++)
                {
                    LinkButton lnkDate = new LinkButton();
                    lnkDate.ID              = "lnkDate_" + curDay.ToString("yyyyMMdd");
                    lnkDate.Text            = curDay.Day.ToString();
                    lnkDate.CssClass        = "date";
                    lnkDate.CommandName     = "ShowDay";
                    lnkDate.CommandArgument = curDay.ToString("yyyyMMdd");
                    lnkDate.Command        += new CommandEventHandler(this.lnkDate_OnCommand);
                    lnkDate.ApplyStyle((curDay.Month == this.dtCurMon.Month) ? this._curMonDateStyle : this._othMonDateStyle);
                    this._lnkDates.Add(lnkDate, curDay.ToString("yyyMMdd"));

                    curDay = curDay.AddDays(1);
                }
                curWkStart = curDay;
            }

            base.CreateChildControls();

            this.Controls.Add(this._lnkPrevMon);
            this.Controls.Add(this._lnkNextMon);
            this.Controls.Add(this._lnkHdrSun);
            this.Controls.Add(this._lnkHdrMon);
            this.Controls.Add(this._lnkHdrTue);
            this.Controls.Add(this._lnkHdrWed);
            this.Controls.Add(this._lnkHdrThu);
            this.Controls.Add(this._lnkHdrFri);
            this.Controls.Add(this._lnkHdrSat);

            for (int i = 0; i < this._lnkDates.Count; i++)
            {
                this.Controls.Add(this._lnkDates[i]);
            }
        }
        /// <devdoc>
        /// <para>[To be supplied.]</para>
        /// </devdoc>
        public override void EnterStyle(Style style, HtmlTextWriterTag tag) {
            // Ignore tag for wml.
            if (AnalyzeMode) {
                return;
            }

            // All "block level controls" (controls that render using block level elements in HTML) call enterStyle
            // using a div.  Here we ensure that a new p is open for these controls to ensure line breaking behavior.
            if (tag == HtmlTextWriterTag.Div) {
                BeginBlockLevelControl();
            }

            Style stackStyle = new Style();
            stackStyle.CopyFrom(style);
            stackStyle.MergeWith(CurrentStyle);
            if (_panelStyleStack.Count > 0) {
                stackStyle.MergeWith((Style)_panelStyleStack.Peek());
            }
            _styleStack.Push(stackStyle); // updates CurrentStyle

            if (_paragraphOpen) {
                OpenCurrentStyleTags();
            }
        }
Esempio n. 6
0
        /// <summary>
        /// This method create a selector based on the parameters.
        /// </summary>
        /// <param name="output">The HtmlTextWriter to write.</param>
        /// <param name="suffix">The suffix to use to identify the selector with the LoadPostData method.</param>
        /// <param name="style">The style class to use.</param>
        /// <param name="onchange">The value of the OnChange attribute of the selector to use with the client side validator.</param>
        /// <param name="min">The minimum value of the selector.</param>
        /// <param name="max">The maximum value of the selector.</param>
        /// <param name="padding">The number of chars to use with padding.</param>
        /// <param name="selectedValue">The selected value.</param>
        private void WriteSelector(HtmlTextWriter output, string suffix, System.Web.UI.WebControls.Style style, string onchange, int min, int max, int padding, int selectedValue, short tabIndex)
        {
            // Check if the actual year value can be displayed in the selector
            if (selectedValue < min || selectedValue > max)
            {
                throw new Exception("The year value (" + Date.Year.ToString() + ") of the Date property is greater than the maximum (" + max.ToString() + ") or less than the minimum (" + min.ToString() + "). Please adjust values or set AutoAdjust property to true.");
            }

            // Some variable we will use
            int index;

            output.WriteBeginTag("select");
            if (!this.Enabled)
            {
                output.WriteAttribute("disabled", "disabled");
            }
            output.WriteAttribute("name", UniqueID + suffix);
            if (_renderUplevel && onchange != null)
            {
                output.WriteAttribute("onchange", onchange);
            }
            output.WriteLine(HtmlTextWriter.TagRightChar);

            // Add the styles to the selector after the merge with the base style.
            style.MergeWith(_baseStyle);
            style.AddAttributesToRender(output);

//			// Write Tab Index
//			if(tabIndex != 0)
//				output.AddAttribute("tabindex", tabIndex.ToString());

            output.Indent++;
            // Write the option tags
            for (index = min; index <= max; index++)
            {
                output.WriteBeginTag("option");
                output.WriteAttribute("value", index.ToString());

                // Set the selected value
                if (index == selectedValue)
                {
                    output.WriteAttribute("selected", null);
                }

                output.Write(HtmlTextWriter.TagRightChar);

                if (suffix == "_month" && !_monthNamesDisabled)
                {
                    output.Write(_months[index - 1]);
                }
                else
                {
                    output.Write(index.ToString().PadLeft(padding, '0'));
                }
                output.WriteEndTag("option");
                output.WriteLine();
            }
            output.Indent--;

            // Write the selector end tag
            output.WriteEndTag("select");
        }
Esempio n. 7
0
        protected override void CreateChildControls()
        {
            LinkButton lnkPrevMon = new LinkButton();
            lnkPrevMon.ID = "lnkPrevMon";
            lnkPrevMon.Text = this.PrevMonthText;
            lnkPrevMon.Click += new EventHandler(this.lnkPrevMon_OnClick);
            this._lnkPrevMon = lnkPrevMon;

            LinkButton lnkNextMon = new LinkButton();
            lnkNextMon.ID = "lnkNextMon";
            lnkNextMon.Text = this.NextMonthText;
            lnkNextMon.Click += new EventHandler(this.lnkNextMon_OnClick);
            this._lnkNextMon = lnkNextMon;

            Style hdrTextStyle = new System.Web.UI.WebControls.Style();
            hdrTextStyle.MergeWith(this._dayHdrStyle);
            hdrTextStyle.BorderStyle = BorderStyle.None;

            LinkButton lnkHdrSun = new LinkButton();
            lnkHdrSun.ID = "lnkHdrSun";
            lnkHdrSun.Text = this.GetDayName(DayOfWeek.Sunday);
            lnkHdrSun.ApplyStyle(hdrTextStyle);
            lnkHdrSun.CommandName = "ShowDay";
            lnkHdrSun.CommandArgument = DayOfWeek.Sunday.ToString();
            lnkHdrSun.Command += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrSun = lnkHdrSun;

            LinkButton lnkHdrMon = new LinkButton();
            lnkHdrMon.ID = "lnkHdrMon";
            lnkHdrMon.Text = this.GetDayName(DayOfWeek.Monday);
            lnkHdrMon.ApplyStyle(hdrTextStyle);
            lnkHdrMon.CommandName = "ShowDay";
            lnkHdrMon.CommandArgument = DayOfWeek.Monday.ToString();
            lnkHdrMon.Command += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrMon = lnkHdrMon;

            LinkButton lnkHdrTue = new LinkButton();
            lnkHdrTue.ID = "lnkHdrTue";
            lnkHdrTue.Text = this.GetDayName(DayOfWeek.Tuesday);
            lnkHdrTue.ApplyStyle(hdrTextStyle);
            lnkHdrTue.CommandName = "ShowDay";
            lnkHdrTue.CommandArgument = DayOfWeek.Tuesday.ToString();
            lnkHdrTue.Command += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrTue = lnkHdrTue;

            LinkButton lnkHdrWed = new LinkButton();
            lnkHdrWed.ID = "lnkHdrWed";
            lnkHdrWed.Text = this.GetDayName(DayOfWeek.Wednesday);
            lnkHdrWed.ApplyStyle(hdrTextStyle);
            lnkHdrWed.CommandName = "ShowDay";
            lnkHdrWed.CommandArgument = DayOfWeek.Wednesday.ToString();
            lnkHdrWed.Command += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrWed = lnkHdrWed;

            LinkButton lnkHdrThu = new LinkButton();
            lnkHdrThu.ID = "lnkHdrThu";
            lnkHdrThu.Text = this.GetDayName(DayOfWeek.Thursday);
            lnkHdrThu.ApplyStyle(hdrTextStyle);
            lnkHdrThu.CommandName = "ShowDay";
            lnkHdrThu.CommandArgument = DayOfWeek.Thursday.ToString();
            lnkHdrThu.Command += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrThu = lnkHdrThu;

            LinkButton lnkHdrFri = new LinkButton();
            lnkHdrFri.ID = "lnkHdrFri";
            lnkHdrFri.Text = this.GetDayName(DayOfWeek.Friday);
            lnkHdrFri.ApplyStyle(hdrTextStyle);
            lnkHdrFri.CommandName = "ShowDay";
            lnkHdrFri.CommandArgument = DayOfWeek.Friday.ToString();
            lnkHdrFri.Command += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrFri = lnkHdrFri;

            LinkButton lnkHdrSat = new LinkButton();
            lnkHdrSat.ID = "lnkHdrSat";
            lnkHdrSat.Text = this.GetDayName(DayOfWeek.Saturday);
            lnkHdrSat.ApplyStyle(hdrTextStyle);
            lnkHdrSat.CommandName = "ShowDay";
            lnkHdrSat.CommandArgument = DayOfWeek.Saturday.ToString();
            lnkHdrSat.Command += new CommandEventHandler(this.lnkHdr_OnCommand);
            this._lnkHdrSat = lnkHdrSat;

            // Create all link buttons for the days we're going to display.
            if (this._lnkDates != null)
                this._lnkDates.Clear();
            this._lnkDates = new Collections.WebControlCollection();
            DateTime curWkStart = this.GetCalFirstDay();
            while (curWkStart.Date < this.dtCurMon.AddMonths(1))
            {
                DateTime curDay = curWkStart;
                for (int i = 0; i < 7; i++)
                {
                    LinkButton lnkDate = new LinkButton();
                    lnkDate.ID = "lnkDate_" + curDay.ToString("yyyyMMdd");
                    lnkDate.Text = curDay.Day.ToString();
                    lnkDate.CssClass = "date";
                    lnkDate.CommandName = "ShowDay";
                    lnkDate.CommandArgument = curDay.ToString("yyyyMMdd");
                    lnkDate.Command += new CommandEventHandler(this.lnkDate_OnCommand);
                    lnkDate.ApplyStyle((curDay.Month == this.dtCurMon.Month) ? this._curMonDateStyle : this._othMonDateStyle);
                    this._lnkDates.Add(lnkDate, curDay.ToString("yyyMMdd"));

                    curDay = curDay.AddDays(1);
                }
                curWkStart = curDay;
            }

            base.CreateChildControls();

            this.Controls.Add(this._lnkPrevMon);
            this.Controls.Add(this._lnkNextMon);
            this.Controls.Add(this._lnkHdrSun);
            this.Controls.Add(this._lnkHdrMon);
            this.Controls.Add(this._lnkHdrTue);
            this.Controls.Add(this._lnkHdrWed);
            this.Controls.Add(this._lnkHdrThu);
            this.Controls.Add(this._lnkHdrFri);
            this.Controls.Add(this._lnkHdrSat);

            for (int i = 0; i < this._lnkDates.Count; i++)
                this.Controls.Add(this._lnkDates[i]);
        }
Esempio n. 8
0
        protected void RenderEventRow(HtmlTextWriter writer, DateTime rowStart)
        {
            DateTime rowEnd = rowStart.Date.AddDays(6);

            writer.AddAttribute(HtmlTextWriterAttribute.Class, "events");
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            CalendarEvent[] events = this._provider.GetEvents(this.DisplayUserKey, rowStart.Date, rowEnd.Date);
            if (events.Length == 0)
            {
                for (int i = 0; i < 7; i++)
                    this.RenderEmptyEvent(writer);
            }
            else
            {
                Style eventTextStyle = new Style();
                eventTextStyle.MergeWith(this._eventStyle);
                eventTextStyle.BorderStyle = BorderStyle.None;

                List<CalendarEvent> unrenderedEvents = new List<CalendarEvent>(events);
                DateTime curDay = rowStart;
                while (unrenderedEvents.Count > 0)
                {
                    // Doing the event this way, lets us put multiple events on the same
                    //   row, so long as they don't "interfere" with each other.
                    CalendarEvent curEv = null;
                    if (curDay.Date == rowStart.Date)
                        // Make sure that we only allow events to occured before the
                        //   "current" date if we're on the first cell in the row.
                        curEv = unrenderedEvents.Where(e => e.EventStartDate.Date <= curDay.Date).FirstOrDefault();
                    else
                        curEv = unrenderedEvents.Where(e => e.EventStartDate.Date == curDay.Date).FirstOrDefault();

                    while (curEv == null && curDay.Date <= rowEnd.Date)
                    {
                        this.RenderEmptyEvent(writer);
                        curDay = curDay.AddDays(1);
                        curEv = unrenderedEvents.Where(e => e.EventStartDate.Date == curDay.Date).FirstOrDefault();
                    }

                    if (curEv == null)
                    {
                        // If we still have no current event at this point, end this row,
                        //   start a new one, and let the search start over.
                        curDay = rowStart;
                        writer.RenderEndTag(); // TR (event row)
                        writer.AddAttribute(HtmlTextWriterAttribute.Class, "events");
                        writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                    }
                    else
                    {
                        // Now, we write the actual event.
                        int eventDays = curEv.EventEndDate.Date <= rowEnd.Date
                            ? (int)System.Math.Ceiling(curEv.EventEndDate.Subtract(curDay).TotalDays)
                            : (int)System.Math.Ceiling(rowEnd.Subtract(curDay).TotalDays) + 1;
                        if (eventDays > 1)
                            writer.AddAttribute(HtmlTextWriterAttribute.Colspan, eventDays.ToString());
                        if (curEv.EventStartDate < rowStart && curEv.EventEndDate > rowEnd)
                            writer.AddAttribute(HtmlTextWriterAttribute.Class, "evMid");
                        else if (curEv.EventStartDate < rowStart)
                            writer.AddAttribute(HtmlTextWriterAttribute.Class, "evEnd");
                        else if (curEv.EventEndDate > rowEnd)
                            writer.AddAttribute(HtmlTextWriterAttribute.Class, "evStart");
                        else
                            writer.AddAttribute(HtmlTextWriterAttribute.Class, "evFull");
                        if (this.ControlStyle != null)
                        {
                            System.Web.UI.WebControls.Style tdStyle = new Style();
                            tdStyle.BorderStyle = this.ControlStyle.BorderStyle;
                            tdStyle.BorderColor = this.ControlStyle.BorderColor;
                            tdStyle.BorderWidth = this.ControlStyle.BorderWidth;
                            tdStyle.ForeColor = this.ControlStyle.ForeColor;
                            tdStyle.BackColor = this.ControlStyle.BackColor;
                            tdStyle.AddAttributesToRender(writer);
                        }
                        writer.RenderBeginTag(HtmlTextWriterTag.Td);

                        //if (curEv.EventStartDate < rowStart && curEv.EventEndDate > rowEnd)
                        //    writer.AddAttribute(HtmlTextWriterAttribute.Class, "evMid");
                        //else if (curEv.EventStartDate < rowStart)
                        //    writer.AddAttribute(HtmlTextWriterAttribute.Class, "evEnd");
                        //else if (curEv.EventEndDate > rowEnd)
                        //    writer.AddAttribute(HtmlTextWriterAttribute.Class, "evStart");
                        //else
                        //    writer.AddAttribute(HtmlTextWriterAttribute.Class, "evFull");
                        this._eventStyle.AddAttributesToRender(writer);
                        writer.RenderBeginTag(HtmlTextWriterTag.Div);

                        LinkButton lnkEvent = new LinkButton();
                        lnkEvent.ID = "lnkEvent_" + curEv.ProviderEventKey + "_" + curDay.ToString("yyyyMMdd");
                        lnkEvent.Text = (curEv.EventStartDate.Date == curDay.Date)
                            ? string.Format("{0} {1}", curEv.EventStartDate.ToString(System.Globalization.DateTimeFormatInfo.CurrentInfo.ShortTimePattern), curEv.Subject)
                            : string.Format("<< {0}", curEv.Subject);
                        lnkEvent.ApplyStyle(eventTextStyle);
                        lnkEvent.CommandName = "ShowEvent";
                        lnkEvent.CommandArgument = curEv.ProviderEventKey.ToString();
                        lnkEvent.Command += new CommandEventHandler(this.lnkEvent_Command);

                        this.Controls.Add(lnkEvent);
                        lnkEvent.RenderControl(writer);

                        writer.RenderEndTag(); // DIV
                        writer.RenderEndTag(); // TD

                        unrenderedEvents.Remove(curEv);
                        curDay = curEv.EventEndDate.AddDays(1);
                    }
                }
                while (curDay.Date <= rowEnd.Date)
                {
                    // "Fill" any remaining days on this row.
                    this.RenderEmptyEvent(writer);
                    curDay = curDay.AddDays(1);
                }
            }

            writer.RenderEndTag(); // TR (event row)
        }
Esempio n. 9
0
		protected override void CreateChildControls() 
		{
			Controls.Clear();
				
			if ((RepeatCount > 0) && (itemTemplate!=null))
			{
				// Start by outputing the header template (if supplied).
				if(headerTemplate != null)
				{
					SimpleRepeaterItem headerContainer = new SimpleRepeaterItem(0, RepeatCount);
					headerTemplate.InstantiateIn(headerContainer);		
					Controls.Add(headerContainer);

					if (headerStyle!=null)
						headerContainer.ApplyStyle(headerStyle);
				}

				// Output the content the specified number of times.
				for (int i = 0; i<RepeatCount; i++)
				{
					SimpleRepeaterItem container = new SimpleRepeaterItem(i+1, RepeatCount);
					
					// Create a style for alternate items.
					Style altStyle = new Style();
					altStyle.MergeWith(itemStyle);
					altStyle.CopyFrom(alternatingItemStyle);

					if ((i%2 == 0) && (alternatingItemTemplate != null))
					{
						// This is an alternating item and there is an alternating template.
						alternatingItemTemplate.InstantiateIn(container);
						container.ApplyStyle(altStyle);
					}
					else
					{
						itemTemplate.InstantiateIn(container);
						if (itemStyle != null)
							container.ApplyStyle(itemStyle);
					}
					
					Controls.Add(container);
				}

				// Once all of the items have been rendered,
				// add the footer template if specified.
				if (footerTemplate != null)
				{
					SimpleRepeaterItem footerContainer = new SimpleRepeaterItem(RepeatCount, RepeatCount);
					footerTemplate.InstantiateIn(footerContainer);
					Controls.Add(footerContainer);
					if (footerStyle != null)
						footerContainer.ApplyStyle(footerStyle);
				}
			}
			else
			{
				// Show an error message.
				Controls.Add(new LiteralControl("Specify the record count and an item template"));
			}
		}