/// <summary> /// Called by the ASP.NET page framework to notify server controls /// that use composition-based implementation to create any child /// controls they contain in preparation for posting back or rendering. /// </summary> protected override void CreateChildControls() { _calendarView = new SPCalendarView { Width = new Unit(100, UnitType.Percentage) }; _xmlCalendar = GetCalendarXML(); if (_xmlCalendar != null) { _xmlCalendar.Decorate(_calendarView); } if (Page.Request.QueryString["CalendarPeriod"] != null) { const string month = "month"; const string day = "day"; const string week = "week"; const string timeline = "timeline"; switch (Page.Request.QueryString["CalendarPeriod"].ToLower()) { case month: _calendarView.ViewType = month; break; case day: _calendarView.ViewType = day; break; case week: _calendarView.ViewType = week; break; case timeline: _calendarView.ViewType = timeline; break; } } _calendarView.EnableViewState = true; Controls.Add(_calendarView); base.CreateChildControls(); }
/// <summary> /// Gets the XML calendar. /// </summary> /// <returns>A SPSCalendarXML definition</returns> private SPSCalendarXML GetCalendarXML() { XmlSerializer serializer = new XmlSerializer(typeof(SPSCalendarXML)); _xmlTransformed = Transform().ToString(); if (!string.IsNullOrEmpty(_xmlTransformed)) { try { TextReader reader = new StringReader(_xmlTransformed); SPSCalendarXML calendar = (SPSCalendarXML)serializer.Deserialize(reader); return(calendar); } catch (Exception ex) { TrapError(GetType(), SPSLocalization.GetResourceString("SPSFW_Err_XmlCalendar"), ex); } } return(null); }